Wie kann ich die CoreDump-Datei anzeigen?

12

Wenn ein Fehler bei einem Absturz gemeldet wird, wird der Fehler in eine Datei namens CoreDump.gz umgewandelt. Die Bug Triage Dokumentation sagt folgendes:

  

Wenn der Absturz immer noch einen CoreDump.gz-Anhang enthält, dann nicht   möglich, um automatisch eine vollständig symbolische Stapelverfolgung zu erhalten und zu überprüfen   für Duplikate.

Stacktrace.txt scheint von einem Menschen lesbar zu sein. Wie kann ich die Bedeutung eines Stack-Trace verstehen? CoreDump mit CoreDump.gz scheint nicht lesbar zu sein. Was ist eine "vollständig symbolische Stapelverfolgung"? Was ist der Unterschied zwischen einer "voll symbolischen Stapelverfolgung" Wie kann ich den Inhalt einer CoreDump-Datei anzeigen? (versuchte 'Katze', aber es ist nicht sauber)

    
komputes 30.09.2011, 21:10
quelle

1 Antwort

15

Coredump.gz ist der (komprimierte) Speicher, auf den das abgestürzte Programm zugreifen kann. Es ist eine Binärdatei. Coredumps sind eine Fundgrube, in der alle möglichen privaten Daten gesammelt werden.

Coredumps können durch Ausführen von 'gdb' angezeigt werden:

gdb --core=mycoredump

Natürlich werden Sie immer noch die mit diesem Kern verbundenen Debug-Pakete benötigen.

Sie können dann einen Stacktrace generieren mit:

(gdb) bt

um einen Stacktrace des aktuellen Threads - ohne Parameterauflösung - oder

zu erzeugen
(gdb) thread apply all bt full

um einen Stacktrace aller Threads im Coredump mit Parameterauflösung zu erzeugen.

stacktrace und full stacktraces zeigen den Kontrollfluss innerhalb eines Programms. Für Python zeigt der obere Teil des Stacktrace den ältesten Aufruf, der letzte unten; für so ziemlich alles andere ist der oberste der letzte Anruf und der untere der älteste.

Ein vollständiger Stacktrace zeigt nicht nur den Fluss, sondern auch die Werte des Parameters an. Hier finden wir normalerweise private Daten - sagen wir zum Beispiel, Sie sehen eine Funktion namens "validatePassword" mit einem Parameter namens "Passwort" und einen Wert von "MySecretPassword" ...

Stacktraces sind normalerweise nur hilfreich, wenn die Debug-Pakete installiert sind (so dass die Stack-Frames in etwas aufgelöst werden können, das wir leicht lesen können). Die Analyse eines Stacktrace erfordert die Quellen, die zum Erstellen dieser spezifischen Programminstanz verwendet wurden.

    
hggdh 30.09.2011, 21:27
quelle

Tags und Links