Forum: PC-Programmierung Logging: max. Länge von .txt Datei


von Günther H. (Gast)


Lesenswert?

Hi,

Ich hab folgendendes Problem ich hab ein ziemlich großes und komplexes 
Programm beschrieben nur leider stürzt es ab und zu mal wieder ab.
Ich möchte jetzt herausfinden wann es abstürzt und wollte dazu in jede 
Methode einen Befehl schreiben der mir dann in eine .txt Datei schreibt 
wo sich das Programm gerade befindet.
Mein Programm ist allerdings riesig und hat sehr viele Threads und 
Interrupts d.h. die Textdatei würde ziemlich groß werden.
Was ja nicht weiter schlimm ist aber ist eine .txt Datei in ihrer Größe 
beschränkt?
Habt ihr bessere Ideen wie ich meinen Fehler finden könnte?

Danke schonmal im Vorraus
MFG
Günther

von Peter (Gast)


Lesenswert?

> Was ja nicht weiter schlimm ist aber ist eine .txt Datei in ihrer Größe
> beschränkt?
warum sollte eine Datei in der größe beschränkt sein? Die einzigste 
einschränkung kann von Dateisystem kommen. Bei Fat32 ist bei 2GB 
schluss. Bei NTFS gibt es keine Praktiche grenze. Bei Linux kommt es 
darauf an ob du mit LARGE_FILE arbeitest.

Aber das wird vermutlich dein Problem nicht lösen, wenn du mit vielen 
Threads arbeitet und nicht ordentlich Synchronisierst dann findest du 
den fehler so nicht. Weil durch das logging du eine synchronisierung 
einführst damit änder sicht das komplette auflaufverhalten des 
Programmes. Was sagt denn der Debugger wenn es abstürzt?

Solche Probleme (wenn es denn mit den Thread zu tun hat) findet man 
leider nur wenn man sich sehr genau den quellcode anschaut und dann 
immer von Schlimmsten fall ausgeht das etwas gleichzeigt passieren kann. 
z.b. Beim starten eines Thread und dann schauen ob er läuft kann es 
passieren man man feststellt das der Thread nicht läuft - noch nicht. 
Das Starten erfolgt asynchon.

von tux85 (Gast)


Lesenswert?

debugger benutzen .txt dateien sind nichts weiter als eben eine Datei 
und die maximale Größe einer Datei hängt maßgeblich vom verwendeten 
dateisystem ab. nutzt du ein ntfs sollten es mehr als 4gb sein ich hoffe 
für dich nicht dass die datei so voll laufen muss

von g457 (Gast)


Lesenswert?

stacktrace?

von kruemeltee (Gast)


Lesenswert?

unter anderem, gdb

von Michael R. (dj_motionx)


Lesenswert?

Hallo !

Ich teil meine Loggingdateien immer auf mehrere auf. Hat eine Datei eine 
bestimmte Größe erreich wird eine neu begonnen. Den Dateinamen versehe 
ich mit einem Index.

L.g

von Klaus (Gast)


Lesenswert?

Bevor ich anfange zu raten: Auf welchen OS läuft dein Programm und 
welchen Compiler benutzt du?

von Udo R. S. (Gast)


Lesenswert?

Programmiersprache?
Betriebssystem?
Entwicklungssystem?

Auf dem PC mit Multithreading und objektorientiert und dann aber 
Interrupts???

gehst Du auch in die Aphotheke und willst ein Medikament ohne zu sagen 
gegen was?

von Udo R. S. (Gast)


Lesenswert?

Ach ja, es wäre durchaus sinnvoll zu beschreiben was Dein Programm macht 
und wie die Aufteilung in Threads gemacht wurde.
Wie sind die Threads synchronisiert?
Wo kommen die zu verarbeitenden Daten her? (Oberfläche, Dateien, 
Datenbank) Wo gehen die verarbeiteten Daten hin?
Wenn Datenbank Wie sind Transaktionen gekapselt? Wird Multithreaded 
darauf zugegriffen, mit einer Connection, mehrere Connections etc. pp.
Wie äussert sich der Absturz? Bleibt es hängen, kommen Exceptions, 
Bluescreens?

Nach Deiner ersten Beschreibung beschleicht mich ein leichter Verdacht, 
daß es Dein erstes größeres Programm mit mehreren Threads ist.
Meist ist die Ursache bei Multithreaded Problemen im Design zu suchen.

Was ist eigentlich groß für Dich? 1000 Zeilen oder 1000 Dateien mit 100 
Millionen Lines of Code?

Gruß, Udo

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.