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
> 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.
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
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
Bevor ich anfange zu raten: Auf welchen OS läuft dein Programm und welchen Compiler benutzt du?
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.