Сохранение файла ядра в gdb


91

Можно ли сохранить / выгрузить файл ядра с помощью gdb? Иногда мне хочется сохранить файл, чтобы потом проанализировать его.

Ответы:


140

Выполните команду "generate-core-file" в gdb.

(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

4
Он будет сохранен в текущем рабочем каталоге GDB, который можно увидеть с помощью pwdкоманды. Если вам нужно его изменить, вы можете сделать это cd, как в оболочке.
Джонатон Рейнхарт

3
@Jonathon_Reinhart передает путь к основному файлу в качестве generate-core-fileпервого аргумента, если вы хотите сохранить его в определенном месте
SergA

19

Также можно использовать gcore <pid>для изготовления сердечников.


это должно быть в комментариях
V-rund Puro-hit

8
Пожалуйста, загляните на эту страницу stackoverflow.com/help/privileges/comment : Когда мне не следует комментировать? .... «Ответить на вопрос или предоставить альтернативное решение существующего ответа;»
Meinew

1
Похоже, gcoreподдерживается только в более новых версиях GDB. Старые требуют generate-core-file.
scai

Похоже, это краткое название, поскольку generate-core-fileоба делают одно и то же.
Чиро Сантилли 郝海东 冠状 病 六四 事件 法轮功
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.