Kerndatei in gdb speichern

88

Ist es möglich, die Kerndatei mit gdb zu speichern / zu sichern? Manchmal möchte ich eine Datei speichern, um sie später zu analysieren.

Maciej Piechotka
quelle

Antworten:

138

Setzen Sie den Befehl 'generate-core-file' in gdb ab.

(gdb) help generate-core-file
Save a core file with the current state of the debugged process.
Argument is optional filename.  Default filename is 'core.<process_id>'.
(gdb) break main
Breakpoint 1 at 0x400e0b: file utils/udec.c, line 36.
(gdb) r
Starting program: /home/nos/build/utils/udec

Breakpoint 1, main (argc=1, argv=0x7fffffffe9a8) at utils/udec.c:36
36              int fileargc = 1;
(gdb) generate-core-file
Saved corefile core.7336
nr
quelle
4
Es wird im aktuellen Arbeitsverzeichnis von GDB gespeichert, das über den pwdBefehl angezeigt werden kann . Wenn Sie es ändern müssen, können Sie dies cdwie bei einer Shell tun .
Jonathon Reinhart
3
@ Jonathon_Reinhart übergeben Core-File-Pfad als generate-core-fileerstes Argument, wenn Sie es an einem bestimmten Ort
speichern
18

Sie können auch gcore <pid>zur Herstellung von Kernen verwenden.

Meinew
quelle
Dies sollte im Kommentarteil sein
V-Rund Puro-Hit
8
Bitte schauen Sie auf diese Seite stackoverflow.com/help/privileges/comment : Wann sollte ich keinen Kommentar abgeben ? .... "Beantworten einer Frage oder Bereitstellen einer alternativen Lösung für eine vorhandene Antwort;"
Meinew
1
Sieht so aus, gcoreals würde dies nur in neueren GDB-Versionen unterstützt. Alte benötigen generate-core-file.
Scai
Dies scheint ein kurzer Name zu sein generate-core-file, für den beide dasselbe tun.
Ciro Santilli 法轮功 冠状 病 六四 事件 法轮功