Как получить трассировку стека вызовов gdb?

Aug 19 2020

У меня есть дамп ядра и файл, в котором хранится отладочная информация. Могу ли я использовать gdb без использования исполняемого файла для получения стека вызовов с именами функций и строк?

Ответы

1 EmployedRussian Aug 20 2020 at 10:04

Могу ли я использовать GDB без использования исполняемого файла, чтобы получить стек вызовов с именами функций и строк?

По крайней мере, в Linux / x86_64 ответ отрицательный: информации, сохраненной после, objcopy --only-keep-debugнедостаточно; вам также понадобится исполняемый файл.

Это происходит (по крайней мере, частично) из-за того, что в нем debug_fileнет .eh_frameраздела, необходимого для раскрутки x86_64.

Если вы самостоятельно отлаживаете дампы ядра, нет причин для их создания debug_file- просто сохраните исходный исполняемый файл с полной отладочной информацией для отладки (вы все равно можете отправить удаленный файл меньшего размера на исполнительные машины).