Fehlermeldungen abfangen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
DD50
Beiträge: 27
Registriert: Do 13. Sep 2012, 12:48

Fehlermeldungen abfangen

Beitrag von DD50 »

Hi,
gibt es für FreePascal/Lazarus eine art madExcept wie es das für Delphi gibt?

Hintergrund ist: Ich habe einen Daemon laufen der an einem Port horcht. Das programm läuft mal 3 tage durch, mal 5 tage. Irgendwann beim Connecten macht es den Thread zu und ich weiss nicht warum. Problem an der sache ist, ich kann die fehler nicht reproduzieren.

Oder gibt es eine andere möglichkeit z.b. einen Stackoverflow, I/O Fehler oder sonstiges abzufangen und ins syslog zu schreiben?

Danke im voraus

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Fehlermeldungen abfangen

Beitrag von Euklid »

Mit try ... except kannst Du den Fehler nicht abfangen?

DD50
Beiträge: 27
Registriert: Do 13. Sep 2012, 12:48

Re: Fehlermeldungen abfangen

Beitrag von DD50 »

Das wiess ich. Ich dachte es gibt was "globales". Also das ich nicht überall das try einbauen muss. Wenn man es mit Debuginfos erstellt, sagt er ja wo es klemmt. Diese meldung möchte ich gerne abfangen.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Fehlermeldungen abfangen

Beitrag von Scotty »

TApplication hat einen Exception-Handler. lmgtfy:
http://docs.embarcadero.com/products/ra ... ption.html" onclick="window.open(this.href);return false;
http://lazarus-ccr.sourceforge.net/docs ... ption.html" onclick="window.open(this.href);return false;

DD50
Beiträge: 27
Registriert: Do 13. Sep 2012, 12:48

Re: Fehlermeldungen abfangen

Beitrag von DD50 »

Erstmal danke. Aber das ist leider keine TApplication. Das ist ein "normales" konsolen programm. OB ich das "sauber" umschreiben kann weiss ich nicht. Da es eigentlich ein Daemon ist. Obwhol, wenn ich mir das so überlege sollte es gehen.

Wenn trotzdem noch einer ne idee hat, immer her damit ;)

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Fehlermeldungen abfangen

Beitrag von Scotty »

Dann lass doch den Thread in einem try/except-Block arbeiten und logge im Exception-Handler (z.B. über TEventlog, unit eventlog).
Vielleicht hilft es ja auch, wenn du das Programm mal nicht dämonisiert laufen lässt. Dann wird die Fehlermeldung im Terminal ausgegeben.

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Fehlermeldungen abfangen

Beitrag von Socke »

Scotty hat geschrieben:Dann lass doch den Thread in einem try/except-Block arbeiten und logge im Exception-Handler (z.B. über TEventlog, unit eventlog).
Vielleicht hilft es ja auch, wenn du das Programm mal nicht dämonisiert laufen lässt. Dann wird die Fehlermeldung im Terminal ausgegeben.
Gibt es nicht auch in der Unit SysUtils einen globalen Exception-Handler, der aufgerufen wird, wenn im Hauptprogramm eine Exception nicht abgefangen wird?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

DD50
Beiträge: 27
Registriert: Do 13. Sep 2012, 12:48

Re: Fehlermeldungen abfangen

Beitrag von DD50 »

Socke hat geschrieben:Gibt es nicht auch in der Unit SysUtils einen globalen Exception-Handler, der aufgerufen wird, wenn im Hauptprogramm eine Exception nicht abgefangen wird?
Genau sowas meine ich. Ich werd mal googln. Nun habe ich wenigstens suchbegriffe. Danke...

EDIT: http://wiki.lazarus.freepascal.org/Logging_exceptions" onclick="window.open(this.href);return false;

Antworten