Run OpenOCD in the first terminal:
$ openocd -s tcl -c 'set ESP_RTOS none' -f interface/ftdi/esp32_devkitj_v1.cfg -f target/esp32.cfg Open On-Chip Debugger v0.10.0-esp32-20210401-13-g5d011fa5 (2021-05-12-12:41) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html none adapter speed: 20000 kHz Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi_tdo_sample_edge falling" Info : clock speed 20000 kHz Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info : esp32.cpu0: Debug controller was reset. Info : esp32.cpu0: Core was reset. Info : Listening on port 3333 for gdb connections Info : esp32.cpu0: Debug controller was reset. Info : esp32.cpu0: Debug controller was reset. Info : esp32.cpu0: Debug controller was reset. Info : accepting 'gdb' connection on tcp/3333 Info : esp32.cpu0: Target halted, PC=0x400E692C, debug_reason=00000000 Info : Set GDB target to 'esp32.cpu0' Info : esp32.cpu0: Target halted, PC=0x4009290A, debug_reason=00000001 Info : Flash mapping 0: 0x10020 -> 0x3f400020, 7 KB Info : Flash mapping 1: 0x20020 -> 0x400d0020, 96 KB Info : esp32.cpu0: Target halted, PC=0x4009290A, debug_reason=00000001 Info : Auto-detected flash bank 'esp32.cpu0.flash' size 4096 KB Info : Using flash bank 'esp32.cpu0.flash' size 4096 KB Info : esp32.cpu0: Target halted, PC=0x4009290A, debug_reason=00000001 Info : Flash mapping 0: 0x10020 -> 0x3f400020, 7 KB Info : Flash mapping 1: 0x20020 -> 0x400d0020, 96 KB Info : Using flash bank 'esp32.cpu0.irom' size 100 KB Info : esp32.cpu0: Target halted, PC=0x4009290A, debug_reason=00000001 Info : Flash mapping 0: 0x10020 -> 0x3f400020, 7 KB Info : Flash mapping 1: 0x20020 -> 0x400d0020, 96 KB Info : Using flash bank 'esp32.cpu0.drom' size 8 KB Info : New GDB Connection: 1, Target esp32.cpu0, state: halted Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info : esp32.cpu0: Debug controller was reset. Info : esp32.cpu0: Core was reset. Info : esp32.cpu0: Target halted, PC=0x500000CF, debug_reason=00000000 Info : esp32.cpu0: Core was reset. Info : esp32.cpu0: Target halted, PC=0x40000400, debug_reason=00000000 Info : esp32.cpu1: Debug controller was reset. Info : esp32.cpu1: Core was reset. Info : esp32.cpu1: Target halted, PC=0x40000400, debug_reason=00000000 Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info : esp32.cpu0: Debug controller was reset. Info : esp32.cpu0: Core was reset. Info : esp32.cpu0: Target halted, PC=0x500000CF, debug_reason=00000000 Info : esp32.cpu0: Core was reset. Info : esp32.cpu0: Target halted, PC=0x40000400, debug_reason=00000000 Info : esp32.cpu1: Debug controller was reset. Info : esp32.cpu1: Core was reset. Info : esp32.cpu1: Target halted, PC=0x40000400, debug_reason=00000000 Info : esp32.cpu0: Target halted, PC=0x400D0A59, debug_reason=00000001 Info : Set GDB target to 'esp32.cpu0'
In the second terminal run xtensa gdb:
$ xtensa-esp32-elf-gdb nuttx GNU gdb (crosstool-NG esp-2020r2) 8.1.0.20180627-git Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=x86_64-build_pc-linux-gnu --target=xtensa-esp32-elf". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type "help". Type "apropos word" to search for commands related to "word"… Reading symbols from nuttx…done. (gdb) target extended-remote :3333 Remote debugging using :3333 up_idle () at chip/esp32_idle.c:206 206 } (gdb) mon reset halt JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) esp32.cpu0: Debug controller was reset. esp32.cpu0: Core was reset. esp32.cpu0: Target halted, PC=0x500000CF, debug_reason=00000000 esp32.cpu0: Core was reset. esp32.cpu0: Target halted, PC=0x40000400, debug_reason=00000000 esp32.cpu1: Debug controller was reset. esp32.cpu1: Core was reset. esp32.cpu1: Target halted, PC=0x40000400, debug_reason=00000000 (gdb) flushregs Register cache flushed. (gdb) b nx_start Breakpoint 1 at 0x400d0a59: file init/nx_start.c, line 354. (gdb) mon reset init JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) esp32.cpu0: Debug controller was reset. esp32.cpu0: Core was reset. esp32.cpu0: Target halted, PC=0x500000CF, debug_reason=00000000 esp32.cpu0: Core was reset. esp32.cpu0: Target halted, PC=0x40000400, debug_reason=00000000 esp32.cpu1: Debug controller was reset. esp32.cpu1: Core was reset. esp32.cpu1: Target halted, PC=0x40000400, debug_reason=00000000 (gdb) c Continuing. Note: automatically using hardware breakpoints for read-only addresses. esp32.cpu0: Target halted, PC=0x400D0A59, debug_reason=00000001 Set GDB target to 'esp32.cpu0' Breakpoint 1, nx_start () at init/nx_start.c:354 354 int cpu = 0; (gdb)