Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:gdb:coredump [2018-04-13 13:01] – mgehrig2 | software:gdb:coredump [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Coredump ====== | ||
- | ===== Überblick ===== | ||
- | Mit den richtigen Vorbereitungen (Siehe Kapitel ' | ||
- | |||
- | Ein Coredump ist ein Speicherabbild des Computers während des Absturzes. | ||
- | Damit lässt sich nach dem Absturz die Ursache des Absturzes ermitteln. | ||
- | |||
- | Um einen Coredump zu erzeugen wird der //gdb// nicht benötigt. | ||
- | Der //gdb// kann aber genutzt werden, um den Coredump zu analysieren. | ||
- | |||
- | Ein Coredump kann schnell mehrere hundert Megabyte gross werden. | ||
- | Auf dieser Seite wird nur erklärt, wie man möglichst einfach die Ursache für Segfault finden kann. | ||
- | Vertieftere Analysen sind aber auch möglich. | ||
- | |||
- | |||
- | ===== Vorbereitung ===== | ||
- | Die Applikation unter Test muss mit Debug Symbolen kompiliert werden. | ||
- | Mehr dazu im [[software: | ||
- | |||
- | Zusätzlich muss für den Coredump Speicher freigegeben werden. | ||
- | Dazu muss, in der **gleichen** Shell in der auch die Applikation gestartet wird, '' | ||
- | |||
- | Wenn die Applikation jetzt abstürzt, erzeug sie eine Datei mit dem Namen '' | ||
- | |||
- | **Achtung**: | ||
- | |||
- | |||
- | ===== Analyse des Coredumps ===== | ||
- | Der Coredump kann mit dem //gdb// analysiert werden. | ||
- | Dazu wird neben dem Coredump auch die Applikation selbst, also das Binary, benötigt. | ||
- | |||
- | 1.) //gdb// starten\\ | ||
- | '' | ||
- | |||
- | 2.) Segfault analysieren\\ | ||
- | '' | ||
- | '' | ||