Unable to start a debug session using the ESP-IDF Debug Adapter for ESP32-C6

149 views Asked by At

Here my setup:

  • Ubuntu 23.10
  • Visual Studio Code v1.85.1
  • Espressif IDF Extension v1.6.5
  • OpenOCD v0.12.0-esp32-20230921
  • MCU: ESP32-C6

Here my code:

#include <freertos/FreeRTOS.h>
#include <freertos/task.h>

void app_main(void)
{
    int i = 0;

    while (1)
    {
        i++;
        vTaskDelay(1000 / portTICK_PERIOD_MS);  
    }
}

Here my launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "espidf",
      "name": "Launch",
      "request": "launch",
      "debugPort": 3333, // tried with 4444, 6666, 43474
      "logLevel": 2,
      "mode": "manual",
      "verifyAppBinBeforeDebug": false,
      "tmoScaleFactor": 1,
      "initGdbCommands": [
        "target remote :3333",
        "symbol-file /build/main.elf",
        "mon reset halt",
        "flushregs",
        "thb app_main",
        "c"
      ],
      "env": {
        "CUSTOM_ENV_VAR": "SOME_VALUE"
      }
    }
  ]
}

My goal is to configure the IDE to debug a firmware using the on-chip debugger via USB/JTAG.

  1. build the code (OK)
  2. start OpenOCD (OK)
 

   /home/mark/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230921/openocd-esp32/bin/openocd
    
    [OpenOCD]
    Open On-Chip Debugger v0.12.0-esp32-20230921 (2023-09-21-13:41)
    Licensed under GNU GPL v2
    For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
    debug_level: 2
    Info : only one transport option; autoselecting 'jtag'
    
    [OpenOCD]
    Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
    Info : esp_usb_jtag: capabilities descriptor set to 0x2000
    
    [OpenOCD]
    Info : Listening on port 6666 for tcl connections
    Info : Listening on port 4444 for telnet connections
    
    [OpenOCD]
    Info : esp_usb_jtag: serial (40:4C:CA:41:3B:00)
    
    [OpenOCD]
    Info : esp_usb_jtag: Device found. Base speed 24000KHz, div range 1 to 255
    
    [OpenOCD]
    Info : clock speed 24000 kHz
    
    [OpenOCD]
    Info : JTAG tap: esp32c6.cpu tap/device found: 0x0000dc25 (mfg: 0x612 (Espressif Systems), part: 0x000d, ver: 0x0)
    
    [OpenOCD]
    Info : [esp32c6] datacount=2 progbufsize=16
    
    [OpenOCD]
    Info : [esp32c6] Examined RISC-V core; found 2 harts
    Info : [esp32c6]  XLEN=32, misa=0x40903105
    
    [OpenOCD]
    Info : starting gdb server for esp32c6 on 3333
    Info : Listening on port 3333 for gdb connections
  1. From "Run and Debug" of VSC run the "Launch" configuration:
    [OpenOCD]
    Info : accepting 'gdb' connection on tcp/3333
    
    [OpenOCD]
    Warn : No symbols for FreeRTOS!
    
    [OpenOCD]
    Info : [esp32c6] Found 4 triggers.
    
    [OpenOCD]
    Info : Flash mapping 0: 0x10020 -> 0x42010020, 30 KB
    Info : Flash mapping 1: 0x20020 -> 0x42000020, 56 KB
    
    [OpenOCD]
    Info : Auto-detected flash bank 'esp32c6.flash' size 4096 KB
    Info : Using flash bank 'esp32c6.flash' size 4096 KB
    
    [OpenOCD]
    Info : Flash mapping 0: 0x10020 -> 0x42010020, 30 KB
    Info : Flash mapping 1: 0x20020 -> 0x42000020, 56 KB
    Info : Using flash bank 'esp32c6.irom' size 60 KB
    
    [OpenOCD]
    Info : Flash mapping 0: 0x10020 -> 0x42010020, 30 KB
    Info : Flash mapping 1: 0x20020 -> 0x42000020, 56 KB
    Info : Using flash bank 'esp32c6.drom' size 32 KB
    Warn : ignoring character 0x43
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : negative acknowledgment, but no packet pending
    Warn : ignoring character 0x4c
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x67
    Warn : ignoring character 0x74
    Warn : ignoring character 0x68
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x20
    Warn : ignoring character 0x35
    Warn : ignoring character 0x31
    Warn : ignoring character 0x34
    Warn : ignoring character 0xd
    Warn : ignoring character 0xa
    Warn : ignoring character 0xd
    Warn : ignoring character 0xa
    Warn : ignoring character 0x7b
    Warn : ignoring character 0x22
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x64
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x69
    Warn : ignoring character 0x74
    Warn : ignoring character 0x69
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x7a
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x67
    Warn : ignoring character 0x75
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x7b
    Warn : ignoring character 0x22
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x49
    Warn : ignoring character 0x44
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x76
    Warn : ignoring character 0x73
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x64
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x4e
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6d
    
    [OpenOCD]
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x56
    Warn : ignoring character 0x69
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x20
    Warn : ignoring character 0x53
    Warn : ignoring character 0x74
    Warn : ignoring character 0x75
    Warn : ignoring character 0x64
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x20
    Warn : ignoring character 0x43
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x64
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x61
    Warn : ignoring character 0x64
    Warn : ignoring character 0x61
    Warn : ignoring character 0x70
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x72
    Warn : ignoring character 0x49
    Warn : ignoring character 0x44
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x70
    Warn : ignoring character 0x69
    Warn : ignoring character 0x64
    Warn : ignoring character 0x66
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x70
    Warn : ignoring character 0x61
    Warn : ignoring character 0x74
    Warn : ignoring character 0x68
    Warn : ignoring character 0x46
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x61
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x70
    Warn : ignoring character 0x61
    Warn : ignoring character 0x74
    Warn : ignoring character 0x68
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x53
    Warn : ignoring character 0x74
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x41
    Warn : ignoring character 0x74
    Warn : ignoring character 0x31
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x75
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x73
    Warn : ignoring character 0x53
    Warn : ignoring character 0x74
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x41
    Warn : ignoring character 0x74
    Warn : ignoring character 0x31
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x56
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x69
    Warn : ignoring character 0x61
    Warn : ignoring character 0x62
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x65
    Warn : ignoring character 0x54
    Warn : ignoring character 0x79
    Warn : ignoring character 0x70
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x56
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x69
    Warn : ignoring character 0x61
    Warn : ignoring character 0x62
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x65
    Warn : ignoring character 0x50
    Warn : ignoring character 0x61
    Warn : ignoring character 0x67
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x67
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x52
    Warn : ignoring character 0x75
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x49
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x54
    Warn : ignoring character 0x65
    Warn : ignoring character 0x72
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x52
    Warn : ignoring character 0x65
    Warn : ignoring character 0x71
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x63
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x50
    Warn : ignoring character 0x72
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x67
    Warn : ignoring character 0x72
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x73
    Warn : ignoring character 0x52
    Warn : ignoring character 0x65
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x67
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x49
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x76
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x64
    Warn : ignoring character 0x61
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x64
    Warn : ignoring character 0x45
    Warn : ignoring character 0x76
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x4d
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x79
    Warn : ignoring character 0x52
    Warn : ignoring character 0x65
    Warn : ignoring character 0x66
    Warn : ignoring character 0x65
    Warn : ignoring character 0x72
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x63
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    
    [OpenOCD]
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x41
    Warn : ignoring character 0x72
    Warn : ignoring character 0x67
    Warn : ignoring character 0x73
    Warn : ignoring character 0x43
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x42
    Warn : ignoring character 0x65
    Warn : ignoring character 0x49
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x72
    Warn : ignoring character 0x70
    Warn : ignoring character 0x72
    Warn : ignoring character 0x65
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x64
    Warn : ignoring character 0x42
    Warn : ignoring character 0x79
    Warn : ignoring character 0x53
    Warn : ignoring character 0x68
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x4d
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x79
    Warn : ignoring character 0x45
    Warn : ignoring character 0x76
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x53
    Warn : ignoring character 0x74
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x44
    Warn : ignoring character 0x65
    Warn : ignoring character 0x62
    Warn : ignoring character 0x75
    Warn : ignoring character 0x67
    Warn : ignoring character 0x67
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x67
    Warn : ignoring character 0x52
    Warn : ignoring character 0x65
    Warn : ignoring character 0x71
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x7d
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x74
    Warn : ignoring character 0x79
    Warn : ignoring character 0x70
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x72
    Warn : ignoring character 0x65
    Warn : ignoring character 0x71
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x65
    Warn : ignoring character 0x71
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x31
    Warn : ignoring character 0x7d
    
    [OpenOCD]
    Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1355 ms). Workaround: increase "set remotetimeout" in GDB

I read the official guide to setup the environment and the related documents. I also found some similar questions (like this and this) but without any useful answer.

By the way, using the Microsoft C/C++ Extension with the launch.json file provided here I can successfully launch a debug session, hence the hardware is ok.

Is there any mistake in my configuration that would prevent the use of the Espressif ESP-IDF Debug Adapter?

1

There are 1 answers

0
valeroso On

I've faced a similar problem. Setup is almost the same:

  • vscode (Windows 10)
  • Espressif IDF Extension v1.7.0
  • OpenOCD v0.12.0-esp32-20230921
  • MCU: ESP32-C6 (devkit)

I figured out that providing symbol-file /build/main.elf argument breaks the debug. If this argument is omitted, than debug session starts ok. (But there are some problems with this method (https://github.com/espressif/vscode-esp-idf-extension/issues/1138). In short I couldn't make ESP-IDF Debug Adapter to continue from one breakpoint to another (only step features are working).

Using Microsoft C/C++ Extension with the launch.json approach works for me. Could Continue (F5) from one breakpoint to another. But in this case debug doesn't stop on app_main function enter, which is minor (it stops on the first breakpoint set).

So my launch.json file looks like:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "espidf",
      "name": "Launch",
      "request": "launch",
      "initGdbCommands": [
        // extended-remote was advised in console
        "target extended-remote :3333",
        "set remote hardware-watchpoint-limit 2",
        "mon reset halt",
        // using this line instead of flushregs was advised in console
        "maintenance flush register-cache",
        "thb app_main",
        "c",
      ],
    },
    {
      "name": "Launch GDB ESP32",
      "type": "cppdbg",
      "request": "launch",
      "cwd": "${workspaceFolder}/build",
      "program": "${workspaceFolder}/build/main.elf",
      // Could specify direct path to .espressif tools instead of the command
      "miDebuggerPath": "${command:espIdf.getXtensaGdb}",
      "setupCommands": [
        { "text": "target extended-remote :3333" },
        { "text": "set remote hardware-watchpoint-limit 2"},
        { "text": "mon reset halt" },
        { "text": "maintenance flush register-cache" },
        { "text": "thb app_main" },
      ]
    }
  ]
}