Как извлечь содержимое памяти из файла ядра процесса?
Я хочу проанализировать содержимое каждого блока памяти, созданного конкретным процессом. Так что я использовал gcore pid, чтобы получить дамп ядра процесса, но я не знаю, как извлечь содержимое, кто-нибудь может помочь?
1 ответ
В общем, хороший инструмент для анализа core
свалка это gdb
отладчик.
Таким образом, вы должны скомпилировать весь свой код с -g
флаг переданgcc
или же g++
или же clang
(чтобы иметь отладочную информацию DWARF внутри вашего исполняемого файла ELF).
Затем вы можете проанализировать (посмертно или нет) дамп ядра вашей программы. myprog
с командой gdb myprog core
, Узнайте, как использоватьgdb
, Заметить, что gdb
является сценарием и расширяемым (в Python и Guile).
Вы могли (но, вероятно, не должны) анализировать core
файл в противном случае (без gdb
). Тогда вам нужно понять его подробный формат (а это может потребовать месяцев работы). См эльф (5) и ядро (5).
Кстати, валгринд также может быть полезным.
Вы могли бы даже использовать gdb
проанализировать дамп ядра из программы, скомпилированной без -g
но это гораздо менее полезно.