Coredump

Wenn eine Anwendung einen Segfault (Segmentation fault: Speicherzugriffsfehler) verursacht, dann kann ein Coredump für hilfreiche Informationen zwecks Fehlersuche bringen.

Ein Coredump wurde bei mir nur mit einem nicht-root-User geschrieben.

Der Linuxkernel ist grundsätzlich in der Lage einen Coredump zu schreiben. Die Funktion ist allerdings von grund an ausgeschaltet.

So schaltet man sie in Ubuntu ein:

vi /etc/default/apport

Hier den Parameter von enable=0 auf 1 setzen.
Danach noch den Dienst starten:

service apport start

Wenn nun das Programm in der Console, aus einem Verzeichnis aus, in dem man Schreibrechte hat, gestartet wird, dann produziert es einen Segfault,
aber die Meldung in der Console lautet dann nicht Segmentation fault sondern Segmentation fault (Speicherabzug geschrieben).

Nach dem Abbruch des Programms findet man nun in dem Verzeichnis eine core Datei.

Diese wiederum kann mit dem Tool gdb geöffnet und gelesen werden.

Einfach folgendermaßen öffnen:

gdb <verursachendes Programm> <corefile>

Nützliche Befehle in gdb sind:

Beenden kann man gdb mit

quit