У меня есть файл дампа физической памяти и файл символов (vmlinux), и я хотел бы проанализировать содержимое файла дампа с файлом символов в gdb. Например, чтобы посмотреть состояние init_task в то время, физическая память выгружалась:
(gdb) print &init_task
=> show the address of init_task in physical memory dump file, said 0xc0XXXXXX
(gdb) print ((struct task_struct *) 0xc0XXXXXX)->tasks
=> show the content of init_task.tasks in physical memory dump file)
Я только что попробовал команды GDB «восстановить» и «целевое ядро», обе не работают. «Восстановление» необходимо использовать в работающем процессе, а «целевому ядру» необходимо указать файл ядра (64-битный файл ядра LSB ELF) в качестве входных данных.
(gdb) restore binary physical-memory-dump-file
You can't do that without a process to debug.
(gdb) target core physical-memory-dump-file
"physical-memory-dump-file" is not a core dump: File format not recognized
Любая идея? Спасибо.
Update1: Привет, Паван, спасибо за напоминание; так как я работаю на специальной платформе, загрузчик на ней сохранит всю физическую память в файле дампа после перезагрузки ядра из panic / Oops. Таким образом, файл дампа физической памяти будет иметь тот же размер, что и физическая оперативная память, и его можно сопоставить с 0xc000: 0000 в ядре из первого его байта.
physical-memory-dump-file
изображение? - person Pavan Manjunath   schedule 05.04.2012