This is the way I’m debugging ESP32-S3 using Espressif’s OpenOCD:


$ sudo esp32s3-openocd -c 'set ESP_RTOS none' -c 'set ESP32_ONLYCPU 1' -f board/esp32s3-builtin.cfg$ sudo esp32s3-openocd -c "set ESP_RTOS none" -c "set ESP32_ONLYCPU 1" -c "set ESP_FLASH_SIZE 0" -f board/esp32s3-builtin.cfg

Open a new terminal and run GDB:

$ xtensa-esp32s3-elf-gdb nuttx
GNU gdb (crosstool-NG esp-2021r2) 9.2.90.20200913-git
Copyright (C) 2020 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-esp32s3-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…
(gdb) tar rem :3333
Remote debugging using :3333
0x420042ba in esp32s3_region_protection () at chip/esp32s3_region.c:91
91 {
(gdb) mon reset halt
JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
esp32s3.cpu0: Debug controller was reset.
esp32s3.cpu0: Core was reset.
esp32s3.cpu0: Target halted, PC=0x500000EF, debug_reason=00000000
Set GDB target to 'esp32s3.cpu0'
esp32s3.cpu0: Core was reset.
esp32s3.cpu0: Target halted, PC=0x40000400, debug_reason=00000000
esp32s3.cpu1: Debug controller was reset.
esp32s3.cpu1: Core was reset.
esp32s3.cpu1: Target halted, PC=0x40000400, debug_reason=00000000
(gdb) b __start
Breakpoint 1 at 0x40378750: file chip/esp32s3_start.c, line 190.
(gdb) c
Continuing.
esp32s3.cpu0: Target halted, PC=0x40378750, debug_reason=00000001
Set GDB target to 'esp32s3.cpu0'
esp32s3.cpu1: Target halted, PC=0x40043A40, debug_reason=00000000

Breakpoint 1, __start () at chip/esp32s3_start.c:190
190 {
(gdb) quit