www.mikrocontroller.net

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


Autor: Günther H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: tux85 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stacktrace?

Autor: kruemeltee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
unter anderem, gdb

Autor: Michael Rathmair (dj_motionx)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

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

Autor: Udo R. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Udo R. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.