วิธีการใช้ esp32 exception decoder ใน PlatformIO
1. ให้เปิด terminal ภายใต้โปรเจคที่ใช้ PlatformIO กรณีนี้เป็น Visual studio code ที่ใช้ extention PlatformIO
2. ให้พิมพ์คำสั่ง
pio device monitor -f esp32_exception_decoder
เมื่อเกิด exception ขึ้นมา แทนที่จะเป็น Backtrace แบบ งง ๆ ก็จะขึ้นมาเป็นตำแหน่งของฟังก์ชันที่ต้องไปตรวจสอบ ซึ่งอาจจะเป็นที่ตำแหน่งที่ชี้ หรือเป็นตำแหน่งที่ใช้ฟังก์ชันนี้ผิดวิธีก็ได้
Monitor แบบธรรมดา
Monitor แบบ filter ด้วย esp32_exception_decoder
โบนัส
เราสามารถทำให้ PlatformIO Serial monitor ของเราที่ปรากฏใต้ status bar
แสดง Decoder โดยไม่ต้องพิมพ์ใน terminal ได้ด้วยเช่นกัน โดย ใส่ข้อความด้านล่างลงใน platformio.ini
หลังจากนั้นให้ build และอัพโหลดลงไปใหม่ เท่านี้ทุกครั้งที่เราเปิด Serial monitor ขึ้นมา ระบบจะใช้ esp32_exception_decoder ให้แล้วสำหรับโปรเจคนี้นะครับ (นั่นแสดงว่าโปรเจคอื่นก็ต้องทำแบบนี้อีกครับ)
หวังว่าบทความสั้น ๆ นี้จะเป็นประโยชน์กับคนที่กำลัง Debug ตัว esp32 แบบง่ายกันนะครับ
ธนบดี บุหลันศรีชาติ
ผู้เขียน