Suche eine sehr "effektive" Methode für Debugging-

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Pope
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 40
Registriert: Mi, 08. Feb 2006 22:00
Wohnort: bei Karlsruhe (D)
Kontaktdaten:

Suche eine sehr "effektive" Methode für Debugging-

Beitrag von Pope »

Hi Leute,

ich muß (mal wieder) ein sehr umfangreiches Protokoll in einen Programmteil einbauen, um Abläufe (in diesem Fall Interfacing mit einem anderem Programm) zu debuggen.

Natürlich kann ich mir helfen. Am Anfang des Threads per fopen() eine Tages-Protokolldatei öffnen - und immer mit fwrite() ne neue Zeile anhängen. Dabei würd ich die Textdatei offen lassen und den Dateihandle als Private mitführen, um an beliebigen Stellen einen Protokoll-Eintrag erstellen zu können.

Da ich enorm viel protokollieren muß, will ich einfach mal die Frage in den Raum stellen: ist das "effektiv" - oder gibt es Wege, dasselbe zu erreichen mit noch weniger "Zusatzlast" fürs system. Ziel ist natürlcih, den Original-Ablauf so wenig wie möglich zu verlangsamen bzw. ressourcenmäßig zu "verändern".

Danke im Voraus für Tips
Gruß
Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Klaus,
bei meinem Webserver habe ich eine Funktion geschrieben, der ich den Namen der Logdatei und den zu schreibenden Eintrag übergebe.
Diese Funktion öffnet bzw. erzeugt die Logdatei, schreibt den Eintrag und schließt die Datei.
Es werden dort sämtliche Zugriffe auf meinen Webserver gelogt - auch aus mehreren Threads.
Funktioniert so sehr gut und ich kann mir sicher sein, dass bei einem Absturz auch alles in der Logdatei steht und nicht die Hälfte fehlt ;-)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
rassekst
UDF-Programmierer
UDF-Programmierer
Beiträge: 97
Registriert: Mi, 01. Feb 2006 23:49
Wohnort: Glauchau
Kontaktdaten:

Beitrag von rassekst »

Hallo,

Ich würde auch die Datei nach dem schreiben wieder schliessen. Ich verwende schon immer STRFILE aus den xToolsIII.

Überigens kann man die Protokolierung auch in einen anderen Task auslagern, dann sollte die Anwendung nicht viel merken.

Gruss Steffen
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

ich verwende am Anfang meines Programmes

#ifdef DEBUG
set console off
set alternate to XYZ.LOG
set alternate on
#endif

und an ausgewählten Stellen im Programm einfach

#ifdef DEBUG
? xyz
#endif

das funktioniert auch im GUI Mode und ist die einzige Möglichkeit den Ablauf eines Programmes zu verfolgen ohne Events zu generieren (der Aufruf des Debuggers erzeugt ja z.B. KillFocus ...).

Beim Programmende wird die Datei automatisch geschlossen und nach dem compilieren ohne debugger ist nichts davon im Programm.
Gruß
Hubert
Benutzeravatar
Pope
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 40
Registriert: Mi, 08. Feb 2006 22:00
Wohnort: bei Karlsruhe (D)
Kontaktdaten:

Beitrag von Pope »

Ok - danke an Alle für die Tips. Ich bastel mir darauf jetzt mein "best-of" *grins*

Gruß
Klaus
Antworten