mirror of
https://github.com/esp8266/Arduino.git
synced 2025-10-22 19:53:04 +03:00
Using GDB stub
Add
#include <GDBStub.h>to the sketchUpload the sketch
Redirect serial port to TCP port:
tcp_serial_redirect.py -p /dev/tty.SLAB_USBtoUART -b 115200 --spy -P 9980 --rts=0 --dtr=0Change port and baud rate as necessary. This command requires python and pyserial.
Observe serial output:
nc localhost 9980Once crash happens, close nc and start gdb:
xtensa-lx106-elf-gdb /path/to/Sketch.cpp.elf -ex "target remote :9980"Or, using the provided gdbcmds file:
xtensa-lx106-elf-gdb /path/to/Sketch.cpp.elf -x gdbcmdsUse gdb to inspect program state at the point of an exception.
Tips and tricks
Upon including GDBStub.h in the sketch, the target is automatically halted when software WDT fires, with
*((int*)0) = 0;at the top of
__wrap_system_restart_localin core_esp8266_postmortem.c.
License
Espressif MIT License. See License file.