Ich benutze Ubuntu 12.04 LTS. Ich habe ein einfaches Programm wie folgt geschrieben, um einen Absturz zu erzeugen:
%Vor%Jetzt laufe ich mit "gcc -g null.c" und dann "./a.out" und die Ausgabe ist wie erwartet.
%Vor%Jetzt möchte ich die Core-Dump-Datei mit gdb sehen. Ich habe die folgenden Sachen gemacht
Ich möchte den Core-Dump in meinem aktuellen Verzeichnis erstellen. Was jetzt zu tun?
Ihre eigentliche Frage scheint nicht zu sein: "Wo ist mein Kernspeicherauszug?", sondern "Wie kann ich /proc/sys/kernel/core_pattern
" ändern?
sollte den Trick machen.
Sie müssen kein Kernmuster verwenden. Es ist nur Dumps in diesem Format% e.% p
Was Sie tun müssen, ist #ulimit -c unlimited
und überprüfen Sie #ulimit -a
und bestätigen Sie, ob die Kerndatei korrekt eingestellt ist. Du bekommst danach den Kern als core.pid.
Nach meinem Verständnis ist die Verwendung von ulimit nicht permanent, d. h. wenn Sie einen Neustart durchführen, wird das Limit wieder auf 0 gesetzt. Um unbegrenzt permanent zu sein, müssen Sie /etc/security/limits.conf ändern. Ändern Sie für Kernmuster usw. die Datei /etc/sysctl.conf.