Antworten:
Kommt auf die Anwendung an. Unterschiedliche Anwendungen haben unterschiedliche Protokollierungssysteme. Es gibt kein zentrales Protokoll, das die gesamte Ausgabe aller Programme enthält, die auf Ihrem System ausgeführt werden.
Davon abgesehen stellen viele Programme ihre Protokolldateien in das Verzeichnis /var/log
. Die Datei /var/log/syslog
(oder vielleicht auch /var/log/messages
) enthält insbesondere die Ausgabe des "Systemloggers", eines Dienstes, der vom System bereitgestellt wird und den Programme (falls sie dies wünschen) für die Protokollierung verwenden können. Aber nicht alle Programme verwenden es. Meistens finden Sie in dieser Datei Meldungen von Systemdiensten auf niedriger Ebene, nicht die grafischen Anwendungen, die Sie wahrscheinlich normalerweise verwenden.
Möglicherweise möchten Sie mehr über die Speicherorte von Standardprotokolldateien erfahren .
Crash - Dateien gehen in /var/log/crashes/
für die Verwendung mit Apport zu Fehlern melden. Sie können einen Core-Dump mit extrahieren apport-unpack
, diesen Core-Dump in gdb speichern und herausfinden, warum das Programm abstürzt.
Dies setzt voraus, dass Sie ein Programmierer sind. Wenn Sie nicht ... nun, können Sie den Absturz sowieso nicht beheben!
bt full
"Oh, schau mal, ein Backtrace ... mit fehlenden Symbolen ... denke, ich muss Debug-Symbole installieren und versuchen, den Absturz zu reproduzieren ..." Haltepunkt ... das ist der fortschrittlichste, den ich damit bekommen habe.
Einige Anwendungen verfügen über Flags, mit denen das Debuggen aktiviert werden kann, z. B. -d, -D, --debug usw. Überprüfen Sie die Manpage der Anwendung ( man [my-app]
), oder führen Sie die App mit dem Flag -h aus , um festzustellen, ob eine solche vorhanden ist Möglichkeit.
Viele GUI-Apps schreiben in $ HOME / .xsession-Fehler, daher ist dies ein guter Ort, um nach Ausgaben zu suchen.
maco hat recht, dass apport wahrscheinlich der sicherste Weg ist, um gute Debug-Informationen zu erhalten. Manchmal wird der Absturz jedoch nicht erfasst.
Wenn alles andere fehlschlägt, können Sie die Informationen auch erzwingen, indem Sie die App in gdb ausführen. Es wäre so etwas wie:
$ gdb my-app
(gdb) run
... alles tun, um es zum Absturz zu bringen ...
(gdb) bt full
und von dort gehen.
Wenn Sie sich für die GDB-Route entscheiden, möchten Sie, wie bereits erwähnt, auch Symbole installieren. Unter https://wiki.ubuntu.com/DebuggingProgramCrash finden Sie Ratschläge zum Handhaben.
Sie können zu gehen, /var/log/messages or crashes
dann können Sie den grep
Befehl auf diesen ausführen und nach der Anwendung suchen, bei der das Suchen nach den Dateien manchmal ziemlich groß werden kann. Es werden Informationen zurückgegeben, die für Ihre Anwendung relevant sind. :)
Wenn Sie Ihre Anwendung über eine .desktop-Startdatei starten, fügen Sie die Option Terminal=true
Ihrer .desktop-Datei hinzu. Dies öffnet ein Terminal, wenn Sie das Programm ausführen. Die Ausgabe auf dem Terminal ähnelt derjenigen, die Sie sehen würden, wenn Sie das Programm zuerst über die Befehlszeile ausgeführt hätten. Auf diese Weise können Sie sehen, welche Textausgabe dazu geführt hat, wenn die GUI abstürzt oder hängt.