Mitprotokollieren / Erkennen, ob ein ESP zwischendurch abstürzt

Hi zusammen,

mal eine allgemeine Frage zum Thema Debugging:

WIe geht man denn am besten vor, wenn man herausfinden will, ob ein ESP8266 (oder auch einen Arduino) zwischendurch (z.B. irgendwann mal während des Tages oder Nachts) abstürzt und auch z.B. herausfinden will, warum?
Wenn ich nicht mehr mit dem Serial Port verbunden bin, krieg ich das ja unter Umständen gar nicht mit, oder? Wenn der abstürzt, wird ja ein Reset gemacht.

Gibt es hier clevere Lösungsansätze?
Klar, man könnte eine Log-Datei schreiben. Aber wenn der ESP abstürzt kann er ja nicht mehr schreiben, warum er abgestürzt ist.

Und wenn ich per Serial Monitor überwache wird der Inhalt des Serial-Monitors doch nach einem Reset gelöscht, oder?

Wie macht ihr sowas?

Viele Grüße
Daniel

Wenn Du den seriellen Datenstrom auf dem PC in eine Datei umleitest, bleibt der erhalten. Beim Neustart eine Ausgabe im Setup, um das zu erkennen.
Der ESP8266 / ESP32 sendet auch einen Restartgrund und evtl. auch einen Stacktrace, den Du mit dem Exception Decoder auswerten kannst.

Gruß Tommy

1 Like

Hi Tommy,

Dumme Frage? Wie macht man das?
Gibts da direkt in der Arduino IDE eine Funktion, um die serielle Ausgabe als Datei anzulegen? Oder muss das im Sketch erledigt werden, also z.B. eine Txt schreiben?

Viele Grüße
Daniel

1 Like

Weder, noch. Du musst ein Terminalprogramm benutzen (z.B. HTerm).

Gruß Tommy

1 Like

mitbekommen:
du könntest einfach die millis() ausgeben (Serial, Display...) dann weist du auch ob es einen Reboot gab.

Warum:
da wird dir nur ein Log helfen dass du extern mitschreibst...

Okidoki, dann werd ich mir mal HTerm besorgen. Den Link hier hab ich mir grad auch noch ergoogelt:

Danke für eure Hilfe und schönen Abend.

Nicht-ESP Arduinos machen eher selten einen Reset,
wenn sie durch fehlerhaften Kode aufhören zu funktionieren.

In den meisten Fällen dürfte der Wachhund zubeißen, wenn mit "lang" laufenden Schleifen gearbeitet wird.

Gruß Tommy

Bei Arduinos müsste man das aber extra konfigurieren,
u.U. den Bootloader wechseln.

Ja, sorry, ich bezog mich nur auf die ESP.

Gruß Tommy

Da ich bisher nur mit nem UNO und nem MEGA den WDT auf 8 Sekunden hatte...
Was gibt es da zu beachten?

Soweit ich weiß, wird von manchen alten Bootloadern
die erste WDT Zeit nach einem Reset so kurz gesetzt,
dass setup nicht mehr dazu kommt einen vernünftigen Wert einzustellen.

1 Like

Wenn man mal ne Runde sucht, ja, dann findet sich da auch was
Das Problem tritt wohl auf den Nanos mit nem Oldbootloader auf.
Mal sehen, ob ich mir das merken kann....
Danke!

Das Problem hast du richtig beschrieben, aber nicht den richtigen Verursacher benannt.
Es ist nicht der Bootloader, welcher die Zeit kurz setzt, sondern der Reset.
Der Default nach einem Reset ist laut Datenblatt die kürzest mögliche Zeit.
Der WDT selber wird nicht beim Reset gestoppt.
Im Datenblatt ist der Default Wert x, also entweder unverändert, bzw der per Fuses eingestellte Wert..
Einzig aus dem Power on Reset, kommt das Bit gelöscht heraus.

Ich frage einfach mal doof:
Wieso sollte ein Rechner abstürzen?
Wenn das Sketch sauber programmiert ist, er mit saauberer Spannung versorgt wird und ggf. noch gegen externe Einstralhlungen abgeschitmt ist, sollte er an sich nie anstürzen, oder sehe ich das falsch?

Ja!

Selbst 1000km Stahlbeton helfen nicht gegen hochenergetische Neutrinos und ihre Kumpels.
Auch mit sogfältiger Programmierung ist dagegen nichts auszurichten.

Tipp:
Wenn du meinst, dass du ein so genialer Programmierer bist, dass nie Fehler auftreten können, ist vermutlich das genaue Gegenteil der Fall.

Oder anders rum:
Warum hat wohl, in der Industrie, Luft und Raumfahrt, jede drecks Gießkanne einen eigenen Wachhund?
Weil die alle doof sind?
Nein!

Wichtige Grundannahmen:

  1. Jedes Programm ist Fehler behaftet.
  2. Der Beweis, dass ein Programm Fehlerfrei ist, ist nicht zu führen

Danke @combie besser hätte ich es auch nicht ausdrücken können.

Demnach müssten dann ungefhr alle Rechner zigtausend mal am Tag abstürzen, wenn Neutrinos, die keinerlei nachweisbare Wechselwirkung haben, dafür verantwortlich sind :wink:

Wie dick ist das Gehäuse Deines PCs?

Das meine ich nicht, dann wäre ich nicht in einem Forum, wie diesem, um mir auch Rat und Hilfe von Leuten zu holen, die es besser können, denn das bräuchte ich ja dann nicht.

Gucky.

Auch Neutrinos haben einen Wirkungsquerschnitt.

-------------------

Disclaimer:

  • Dieses ist ein typisches Combieposting.
  • Es kann Irritationen, Ungenauigkeiten und Irrtümer enthalten.
  • Es wird dringendst dazu aufgefordert, die gegebenen Information vor der Verwendung pingelig zu überprüfen.
  • Es enthält keinerlei Zwang, den Vorschlägen/Gedanken zu folgen. Wenn es nicht schmeckt, einfach im Regal liegenlassen.
  • Es gibt keine Gewähr für die Funktion der evtl. gegebenen Tipps und/oder den Erhalt der geistigen Gesundheit.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.