# ESP32-C3 débugger un serveur web

**URL:** <https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557>\
**Category:** Français\
**Created:** [August 23, 2024, 7:13am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557 "2024-08-23T07:13:42Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 23, 2024, 7:13am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/1 "2024-08-23T07:13:42Z")

</div>

Bonjour à tous,

J'ai à nouveau (ou pas encore vu) un plantage sur mon ESP32 mais [pas le même que le précédent](https://forum.arduino.cc/t/plantage-esp32-task-watchdog-got-triggered-resolu/1275886).  
Au moins j'arrive à le reproduire assez précisément, c'est déjà ça...

Serveur réalisé classiquement avec

```arduino
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <LittleFS.h> 

```

Le plantage

```arduino
E (46034) task_wdt: Task watchdog got triggered. The following t00000000 0x00000000 0x00000000 0x00000000 0x00000000
3fcbee00: 0x00000004 0x00000003 0x3fcd07a8 0x00000002 0x3fcb1000 0xffffffff 0x3fcd07a8 0x4200f6c6
3fcbee20: 0x3fcb1000 0xffffffff 0x3fcd0780 0x42035f94 0x00000000 0x00000000 0x00000000 0x3fcd0780
3fcbee40: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x4038e200
3fcbee60: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
3fcbee80: 0x00000000 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xbaad5678
3fcbeea0: 0x00000a0c 0xabba1234 0x00000a00 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbeec0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbeee0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5

```

a lieu systématiquement quand, depuis le navigateur, je recharge la page **et le cache** du navigateur (CTRL-MAJ-R ou MAJ-F5)

l'IHM web comporte pas mal de fichiers (.html, .css, .js, .png et **trois polices .ttf** )

J'ai l'impression que c'est là que ça coince, je vais essayer d'être clair.

**Point 1 :** Je suis obligé de servir ces fonts :

- l'IHM n'est pas à priori relié à internet (pas possible d'utiliser les googlefonts par exemple)
- deux sont peu courantes et pas forcément sur le PC de l'utilisateur (OK c'est un caprice esthétique), la troisième est totalement perso

**Point 2 :** Les fonts sont « appelées » par le CSS :

```arduino
@font-face {
        font-family: oxanium;
        font-style: normal;
        src: url("./Oxanium-Regular.ttf");
}
@font-face {
        font-family: oxanium;
        font-weight: bold;
        src: url("./Oxanium-Bold.ttf");
}
@font-face {
        font-family: icons;
        font-style: normal;
        src: url("./icons.ttf");
}
body {
  font-family: oxanium, Helvetica, Arial, sans-serif;
  font-size: 1.5rem;
}
// couic la suite du CSS

```

**Point 3 :** si je commente la partie

```arduino
// polices de caractère
   server.on("/Oxanium-Bold.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
     request->send(LittleFS, "/Oxanium-Bold.ttf", "application/octet-stream");
   });
   server.on("/Oxanium-Regular.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
     request->send(LittleFS, "/Oxanium-Regular.ttf", "application/octet-stream");
   });
   server.on("/icons.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
     request->send(LittleFS, "/icons.ttf", "application/octet-stream");
   });

```

C'est moche (bascule sur les polices par défaut du CSS) **mais ça ne plante plus !**

**Point 4 :** Ce qui m'a mis la puce à l'oreille, c'est qu'en accédant à l'IHM avec un smartphone qui n'a pas la police installée, le plantage est immédiat au premier chargement. Mon ordi l'a, c'est peut-être pour ça que je n'ai pas vu très vite le bug.

Est-ce que quelqu'un a une idée de l'origine et/ou d'une solution ?

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [August 23, 2024, 7:19am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/2 "2024-08-23T07:19:01Z")

</div>

> [@ProfesseurMephisto](#):
>
> Le plantage
> 
> ```arduino
> E (46034) task_wdt: Task watchdog got triggered. The following t00000000 0x00000000 0x00000000 0x00000000 0x00000000
> 3fcbee00: 0x00000004 0x00000003 0x3fcd07a8 0x00000002 0x3fcb1000 0xffffffff 0x3fcd07a8 0x4200f6c6
> 3fcbee20: 0x3fcb1000 0xffffffff 0x3fcd0780 0x42035f94 0x00000000 0x00000000 0x00000000 0x3fcd0780
> 3fcbee40: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x4038e200
> 3fcbee60: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
> 3fcbee80: 0x00000000 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xbaad5678
> 3fcbeea0: 0x00000a0c 0xabba1234 0x00000a00 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
> 3fcbeec0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
> 3fcbeee0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
> 
> ```
> 
> a lieu systématiquement quand, depuis le navigateur, je recharge la page **et le cache** du navigateur (CTRL-MAJ-R ou MAJ-F5)

ce serait pas mal de passer les codes hexa dans le décodeur pour voir où ça plante

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 23, 2024, 7:19am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/3 "2024-08-23T07:19:06Z")

</div>

Ce que j'ai tenté : comprendre quand/comment sont servis les fichiers.

J'ai ajouté un mouchard à chaque fichier :

```arduino
void serv_fichiers() {
  // pour la racine, servir index.html en GET et POST
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
Serial.println("--1"); Serial.flush();
    request->send(LittleFS, "/index.html", String(), false, processor);
  });
  server.on("/", HTTP_POST, [](AsyncWebServerRequest *request){
Serial.println("--2"); Serial.flush();
    request->send(LittleFS, "/index.html", String(), false, processor);
  });
  server.on("/index.html", HTTP_GET, [](AsyncWebServerRequest *request){
Serial.println("--3"); Serial.flush();
    request->send(LittleFS, "/index.html", String(), false, processor);
  });
// etc...

// polices de caractère
   server.on("/Oxanium-Bold.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
Serial.println("-16"); Serial.flush();
     request->send(LittleFS, "/Oxanium-Bold.ttf", "application/octet-stream");
   });
   server.on("/Oxanium-Regular.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
Serial.println("-17"); Serial.flush();
     request->send(LittleFS, "/Oxanium-Regular.ttf", "application/octet-stream");
   });
   server.on("/icons.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
Serial.println("-18"); Serial.flush();
     request->send(LittleFS, "/icons.ttf", "application/octet-stream");
   });

```

Ça ne m'aide absolument pas : les `Serial.println("-xx"); Serial.flush();` n'apparaissent quasiment jamais dans dans console série **????** 🤔 malgré le `flush()`

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 23, 2024, 7:19am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/4 "2024-08-23T07:19:43Z")

</div>

> [@J-M-L](#):
>
> ce serait pas mal de passer les codes hexa dans le décodeur pour voir où ça plante

Merci de ta réponse rapide...  
Comment fait-on cela ?

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [August 23, 2024, 7:23am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/5 "2024-08-23T07:23:40Z")

</div>

> [@ProfesseurMephisto](#):
>
> Comment fait-on cela ?

avec le exception stack decoder

> **[GitHub - me-no-dev/EspExceptionDecoder: Exception Stack Trace Decoder for ESP8266 and...](https://github.com/me-no-dev/EspExceptionDecoder)**
>
> Exception Stack Trace Decoder for ESP8266 and ESP32

PS: le MIME type pour vos fonts est incorrect, ce serait sans doute plus `font/ttf` normalement

```arduino
server.on("/Oxanium-Bold.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
  request->send(LittleFS, "/Oxanium-Bold.ttf", "font/ttf");
});
server.on("/Oxanium-Regular.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
  request->send(LittleFS, "/Oxanium-Regular.ttf", "font/ttf");
});
server.on("/icons.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
  request->send(LittleFS, "/icons.ttf", "font/ttf");
});

```

Vous pourriez aussi envisager de réduire la taille des fichiers. `.ttf` (TrueType Font) est non compressé, donc généralement le plus volumineux. Si vous passez en `.woff2` ce sera plus compact.

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 23, 2024, 7:28am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/6 "2024-08-23T07:28:24Z")

</div>

Merci pour votre disponibilité et compétences hors norme !  
Je regarde ça dès que possible et je reviens !

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 23, 2024, 10:55am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/7 "2024-08-23T10:55:23Z")

</div>

Je n'ai pas laissé tombé... c'est juste que le "décodeur hexa" ne fonctionne pas avec l'EDI 2.3.2 et que mon code ne compile pas avec l'EDI 1.8.19.

Faudrait pas non plus que je m'ennuie 😉

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [August 23, 2024, 11:49am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/8 "2024-08-23T11:49:35Z")

</div>

> [@ProfesseurMephisto](#):
>
> le "décodeur hexa" ne fonctionne pas avec l'EDI 2.3.2

ah il y a une autre version pour l'IDE 2.x

j'avais posté un lien, faut que je le retrouve

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [August 23, 2024, 11:53am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/9 "2024-08-23T11:53:13Z")

</div>

j'ai retrouvé le lien

> **[GitHub - dankeboy36/esp-exception-decoder: ESP8266/ESP32 Exception Decoder Extension for the...](https://github.com/dankeboy36/esp-exception-decoder)**
>
> ESP8266/ESP32 Exception Decoder Extension for the Arduino IDE

---

<div class="post-metadata">

**Author:** ![al1fch](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/al1fch/32/979602_2.png) [@al1fch](https://forum.arduino.cc/u/al1fch)\
**Post date:** [August 23, 2024, 12:06pm UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/10 "2024-08-23T12:06:44Z")

</div>

Bonjour

Cette version de décodeur ne semble pas pouvoir gérér les ESP32-C3, -C6 .... avec des coeurs RISC-V

ici intervention de igrr 🙂 [Exception decoding for RISC-V chips (ESP32-C3, C6, H2, etc) · Issue #6 · dankeboy36/esp-exception-decoder · GitHub](https://github.com/dankeboy36/esp-exception-decoder/issues/6)

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 23, 2024, 12:14pm UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/11 "2024-08-23T12:14:17Z")

</div>

Il y a un truc que je ne fais pas bien... (ou le décodeur mais c'est moins probable) :

```arduino
ESP Exception Decoder
Sketch: kelvin_V5_debug FQBN: esp32:esp32:esp32c3

3fcbed20: 0x3fcbedac 0x00000000 0x3fcb94e4 0x4038be9e 0x00000000 0x3fcd27b4 0x0000059c 0x0000001d
3fcbed40: 0x00000000 0x00000000 0x00000000 0x00009eac 0x00000004 0x00000003 0x3fcd14d8 0x00000002
3fcbed60: 0x3fcb1000 0xffffffff 0x3fcd05a0 0x4204a322 0x00000004 0x00000003 0x3fcd05c8 0x3fcbedac
3fcbed80: 0x3fcb1000 0xffffffff 0x3fcd05a0 0x4204a154 0x3fcb1000 0xffffffff 0x3fcd05a0 0x42035b24
3fcbeda0: 0x00000000 0x00000000 0x00000000 0x3fcd05a0 0x00000000 0x00000000 0x00000000 0x00000000
3fcbedc0: 0x00000000 0x00000000 0x00000000 0x4038e200 0x00000000 0x00000000 0x00000000 0x00000000
3fcbede0: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbee00: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xbaad5678 0x00000a0c 0xabba1234 0x00000a00 0xa5a5a5a5
3fcbee20: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbee40: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbee60: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbee80: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbeea0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbeec0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbeee0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef00: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef20: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef40: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef60: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef80: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbefa0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbefc0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbefe0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbf000: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5

Could not recognize stack trace/backtrace

Paste exception to decode...

```

Edit : j'avais pas vu la modif de @al1fch c'est peut-être ça ?

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 23, 2024, 12:54pm UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/12 "2024-08-23T12:54:18Z")

</div>

Maintenant que ça compile aussi avec l'IDE 1.8.19 j'ai testé : ça marche pas mieux, le "décodeur" reste muet...

 ![Capture du 2024-08-23 14-51-57](https://europe1.discourse-cdn.com/arduino/original/4X/b/e/f/befd0e0589c07bf356a961686aaf17633f21c8c0.png)

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [August 23, 2024, 2:51pm UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/13 "2024-08-23T14:51:32Z")

</div>

Il faut copier coller le texte dans le décodeur

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 23, 2024, 3:37pm UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/14 "2024-08-23T15:37:41Z")

</div>

C'est ce que j'ai fait... Enfin je pense !

J'explique exactement ce que j'ai fait :

compilation - upload - démarrage - MAJ+F5 - plantage

Sur la console série il affiche alors :

```arduino

assert failed: tcp_recved /IDF/components/lwip/lwip/src/core/tcp.c:985 (don't call tcp_recved for listen-pcbs)
Core 0 register dump:
MEPC : 0x40381db8 RA : 0x4038b38e SP : 0x3fcbec20 GP : 0x3fc93200  
TP : 0x3fc7a838 T0 : 0x61632074 T1 : 0x696c2072 T2 : 0x276e6f64  
S0/FP : 0x00000001 S1 : 0x3fcbedbe A0 : 0x3fcbec84 A1 : 0x3fc95389  
A2 : 0x00000001 A3 : 0x00000029 A4 : 0x00000001 A5 : 0x3fcb1000  
A6 : 0x6263702d A7 : 0x6e657473 S2 : 0x00000059 S3 : 0x3fcbec78  
S4 : 0x3fcbec78 S5 : 0x4203988c S6 : 0x00000004 S7 : 0x3c15c67c  
S8 : 0x00000000 S9 : 0x00000000 S10 : 0x00000000 S11 : 0x00000000  
T3 : 0x6f662064 T4 : 0x65766365 T5 : 0x725f7063 T6 : 0x74206c6c  
MSTATUS : 0x00001801 MTVEC : 0x40380001 MCAUSE : 0x00000007 MTVAL : 0x00000000  
MHARTID : 0x00000000  

Stack memory:
3fcbec20: 0x3fcb1000 0x3fcb1000 0x3c15c73c 0x40391306 0x00000002 0x3fcd94f8 0x3fcb92b4 0x3fc95388
3fcbec40: 0x00000000 0x00000000 0x3fcbff64 0x00353839 0x3c15be3c 0x3fc956c0 0x3c15cc34 0x3fc95a7c
3fcbec60: 0x3c15c67c 0x3fc956d0 0x3fcbec4c 0x3fc956d4 0x3c15c73c 0x3fc95388 0x00000000 0x00000000
3fcbec80: 0x3f000000 0x65737361 0x66207472 0x656c6961 0x74203a64 0x725f7063 0x65766365 0x492f2064
3fcbeca0: 0x632f4644 0x6f706d6f 0x746e656e 0x776c2f73 0x6c2f7069 0x2f706977 0x2f637273 0x65726f63
3fcbecc0: 0x7063742f 0x393a632e 0x28203538 0x276e6f64 0x61632074 0x74206c6c 0x725f7063 0x65766365
3fcbece0: 0x6f662064 0x696c2072 0x6e657473 0x6263702d 0x3f002973 0x00000003 0x00000004 0x00000000
3fcbed00: 0x00000000 0x00000000 0x00000000 0x00000000 0x3fcd8dd8 0x3fcdaa64 0x0000000a 0x00000001
3fcbed20: 0x3fcbedac 0x00000000 0x3fcb94e4 0x4038bea2 0x00000000 0x00000000 0x3fcb92b4 0x0000001c
3fcbed40: 0x00000000 0x00000014 0x00000000 0xf2ecfadc 0x3fcd7ea2 0x3fcad5a4 0x3fcd07a8 0x00000000
3fcbed60: 0x00000004 0x00000003 0x3fcd0808 0x00000002 0x3fcb1000 0xffffffff 0x3fcd0df0 0x4203988c
3fcbed80: 0x00000008 0x3fcd8b08 0x3fcd0808 0x4200f0ec 0x3fcb1000 0xffffffff 0x3fcd07e0 0x42035a72
3fcbeda0: 0x00000000 0x00000000 0x00000000 0x3fcd07e0 0x00000000 0x00000000 0x00000000 0x00000000
3fcbedc0: 0x00000000 0x00000000 0x00000000 0x4038e200 0x00000000 0x00000000 0x00000000 0x00000000
3fcbede0: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbee00: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xbaad5678 0x00000a0c 0xabba1234 0x00000a00 0xa5a5a5a5
3fcbee20: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbee40: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbee60: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbee80: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbeea0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbeec0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbeee0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef00: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef20: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef40: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef60: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbef80: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbefa0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbefc0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbefe0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
3fcbf000: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5

ELF file SHA256: 3d049e69316e4012

Rebooting...
ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0xd (SPI_FAST_FLASH_BOOT)
Saved PC:0x40048b82
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd5820,len:0x1058
load:0x403cc710,len:0x8a8
load:0x403ce710,len:0x2fa0
entry 0x403cc710

```

Outils - ESP exception décoder

il affiche « Paste your stack trace here »

Je copie-colle alors la partie en dessous de `Stack memory:`

Et rien ne se passe.

Pareil si je mets absolument toute la sortie du plantage.

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [August 23, 2024, 4:10pm UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/15 "2024-08-23T16:10:21Z")

</div>

Ok je ne connais pas cette version…

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 25, 2024, 8:59pm UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/16 "2024-08-25T20:59:46Z")

</div>

Bonsoir à tous,

Quelques infos pour ceux qui suivent ce sujet (et un grand merci pour les aides apportées)

Je commence à y voir un peu plus clair sur la cause :  
ESPAsyncWebServer a du mal à supporter les requêtes simultanées (rafraîchissements trop rapides, accès pas plusieurs clients simultanément, pages complexes avec plusieurs `, etc. De ce que j'ai pu lire, il n'est pas impossible que ce soit aggravé par l'utilisation d'un WebSocket.

Je suis arrivé à avoir un truc un peu plus stable mais en jouant du côté du code HTML : au lieu d'une page classique j'ai une page avec juste le contenu en HTML et dans l'entête un javascript qui va créer dynamiquement les différents `<link>` pour charger les polices puis la feuille de style, puis les autres JS, etc.

Ça semble à première vue plus stable... Ça plante encore avec des appuis frénétiques sur `CTRL-F5` mais en usage normal ça semble (je reste prudent) OK.

Le prix à payer est une interface web un peu moins réactive que souhaitée, mais ça reste très raisonnable.

SI ces diagnostic et solution parlent à certains d'entre vous et/ou cela vous évoque des commentaires/perfectionnements, je suis bien sûr preneur de vos avis !

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [August 26, 2024, 6:53am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/17 "2024-08-26T06:53:04Z")

</div>

> [@ProfesseurMephisto](#):
>
> ESPAsyncWebServer a du mal à supporter les requêtes simultanées (rafraîchissements trop rapides, accès pas plusieurs clients simultanément, pages complexes

C’est plutôt l’ESP32 qui a du mal avec cela , n’oubliez pas que ça reste un petit MCU avec un accès mémoire assez lent des qu'on sort de la RAM embarquée pour aller vers la SPI RAM.

En conséquence si le callback qui doit bâtir la réponse est lent, il faut implement une solution qui libère la boucle principale d’évènements du serveur.

Ça peut être par envoi par petits bouts ou création d’une task qui traite la demande et répond plus tard. Il me semble que la bibliothèque ESPAsyncWebServer conserve l'objet `AsyncWebServerRequest` actif jusqu'à ce que la réponse soit envoyée, permettant ainsi de différer la réponse en toute sécurité même lorsque le pointeur de la requête est passé à une tâche séparée.

---

<div class="post-metadata">

**Author:** ![al1fch](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/al1fch/32/979602_2.png) [@al1fch](https://forum.arduino.cc/u/al1fch)\
**Post date:** [August 26, 2024, 7:06am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/18 "2024-08-26T07:06:34Z")

</div>

> [@J-M-L](#):
>
> C’est plutôt l’ESP32 qui a du mal avec cela , n’oubliez pas que ça reste un petit MCU

et l'ESP32-C3 est un 'petit ESP32' avec un seul coeur (RISC-V), un ESP32-S2 ou ESP32-S3 serait peut être un peu plus réactif, sans forcément satisfaire des CTRL-F5 'frénétiques' !

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [August 26, 2024, 7:51am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/19 "2024-08-26T07:51:45Z")

</div>

Effectivement un des intérêts de ESPAsyncWebServer est dans sa capacité à utiliser les 2 cœurs quand ils sont là. C’est mieux de pouvoir en profiter surtout si on ajoute des tasks

---

<div class="post-metadata">

**Author:** ![ProfesseurMephisto](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/professeurmephisto/32/872840_2.png) [@ProfesseurMephisto](https://forum.arduino.cc/u/ProfesseurMephisto)\
**Post date:** [August 26, 2024, 7:55am UTC](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557/20 "2024-08-26T07:55:13Z")

</div>

Merci à vous deux pour ce retour… j’essayerais de faire un prototype numéro 2 avec un S2 ou un S3.

L’envoi par petits morceaux marche bien, je l’utilise pour extraire les données en csv mais le problème avec la page web c’est de composer avec, nécessairement, plusieurs requêtes : la page en elle-même (on peut y mettre le css et JavaScript si besoin pour avoir un seul gros fichier) mais avec les binaires ça coince (polices et images)

[Next page](https://forum.arduino.cc/t/esp32-c3-debugger-un-serveur-web/1294557.md?page=2)
