我正在使用 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() {
}
我在调试删除库时停止接收 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
不太明白为什么。