ESP32:在使用 JTAG ESP-PROG 调试“ESP Async WebServer”时不断中断 SIGTRAP

问题描述 投票:0回答:1

我正在使用 Visual Code 和 PlatformIo 编写一种使用“ESP Async WebServer”的伪 Rest 服务器

当我上传代码并像往常一样使用串口对其进行测试时,代码似乎可以工作。但是当我尝试使用 JTAG ESP_PROG 调试它时,它不断遇到伪断点:

Thread 
8 "async_tcp" received signal SIGTRAP, Trace/breakpoint trap.
2
Info : [esp32.cpu0] Target halted, PC=0x40092612, debug_reason=00000001
AsyncWebServer::_rewriteRequest (this=<optimized out>, request=0x3ffd18ac) at .pio/libdeps/az-delivery-devkit-v4/ESP Async WebServer/src/WebServer.cpp:107
107      if (r->match(request)){

这是我的 platformio.ini 文件

[env:az-delivery-devkit-v4]
platform = espressif32
board = az-delivery-devkit-v4 
framework = arduino
;monitor_speed = 115200
debug_tool = esp-prog
upload_protocol = esp-prog
debug_init_break = tbreak setup
debug_speed = 20000
;build_type = debug
;debug_build_flags = -O0 -g -ggdb


lib_deps = 
    ESP Async WebServer 
    bblanchon/ArduinoJson@^7.0.4
    esphome/ESPAsyncWebServer-esphome@^3.1.0
    esphome/AsyncTCP-esphome@^2.1.3

我的代码如下所示(其中 SerialDebug 现在是一个空函数):

void setup() {
    //Serial.begin(115200);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        SerialDebug("Connecting to WiFi ...");
    }
    SerialDebug("Local IP : %s",  WiFi.localIP().toString());

    // Configuration des routes
    server.on("/login", // La route
              HTTP_POST, // La méthode  (GET, POST, PUT, DELETE, etc.)
              NULL, // [](AsyncWebServerRequest *request){} : Une fonction ou une lambda iciqui est appelée lorsque la route correspondante
                    // est accédée avec la méthode HTTP spécifiée (Pour les requêtes GET simples).
              NULL,  // Gestionnaire de chargement de fichier nécessaire ici.
              OnLogin); // Fonction  Pour les méthodes comme POST ou PUT,
                        // où la requête peut inclure un corps (par exemple, des données JSON),
                        // ce gestionnaire permet de traiter ces données. Il est appelé avec les données du corps, la longueur de ces données,
                        // et d'autres informations pertinentes pour permettre leur traitement.

    server.on("/get_nb_core", //  route
              HTTP_POST, // La méthode  (GET, POST, PUT, DELETE, etc.)
              NULL, //[](AsyncWebServerRequest *request){}, // Une fonction ou une lambda iciqui est appelée lorsque la route correspondante
                                                     // est accédée avec la méthode HTTP spécifiée (Pour les requêtes GET simples).
              NULL,  // Gestionnaire de chargement de fichier nécessaire ici.
              OnGetNbCore); // Fonction  Pour les méthodes comme POST ou PUT,
                            // où la requête peut inclure un corps (par exemple, des données JSON),
                            // ce gestionnaire permet de traiter ces données. Il est appelé avec les données du corps, la longueur de ces données,
                            // et d'autres informations pertinentes pour permettre leur traitement.


    server.begin();
}

void loop() {
    
}
esp32 platformio jtag
1个回答
0
投票

我在调试删除库时停止接收 Sigtrap :

[env:az-delivery-devkit-v4]
platform = espressif32
board = az-delivery-devkit-v4 
framework = arduino
;monitor_speed = 115200
debug_tool = esp-prog
upload_protocol = esp-prog
debug_init_break = tbreak setup
debug_speed = 20000
build_type = debug
debug_build_flags = -O0 -g -ggdb


lib_deps = 
    ;ESP Async WebServer 
    bblanchon/ArduinoJson@^7.0.4
    esphome/ESPAsyncWebServer-esphome@^3.1.0
    esphome/AsyncTCP-esphome@^2.1.3

不太明白为什么。

© www.soinside.com 2019 - 2024. All rights reserved.