2013-11-29 2 views
0

Я пытаюсь выполнить посмертный анализ разбитого двоичного файла «TestApp» в Linux-системе.GDB - Загрузка отладочной информации из внешних файлов «.sym»

У меня есть копия двоичных файлов и и общие объекты, которые копируются на устройство в пути:

/usr/public/target 

Эта папка содержит все двоичные файлы в вопросе в структуре каталогов, используемые в тестируемой системе , то есть:

/usr/public/target/sbin/TestApp 
/usr/public/target/lib/TestAppLib.so 
/usr/public/target/usr/lib/TestAppAPILib.so 

автоматизированный процесс сборки полос отладочную информацию из бинарных файлов, и сохраняет их во внешних, символьных файлов, все под:

/usr/public/target_external_symbols 

Так символьная информация для указанных бинарных файлов будет существовать в файлах с именами:

/usr/public/target_external_symbols/sbin/TestApp.sym 
/usr/public/target_external_symbols/lib/TestAppLib.so.sym 
/usr/public/target_external_symbols/usr/lib/TestAppAPILib.so.sym 

Как получить GDB, чтобы знать о существовании этих внешних символов и загрузить их?

Я обычно вызывать GDB через:

gdb TestApp TestApp.core 

Я называют другие статьи о создании файла теста .gdbinit и передать его в GDB через -command аргумент, но он не появляется на работе. Каждый раз, когда я пытаюсь получить обратную линию из моего основного файла, я получаю указание от GDB, что он не может открыть символы отладки. Любая помощь в разрешении этого оценивается.

(gdb) info shared 
From  To   Syms Read Shared Object Library 
0x78000000 0x780061e8 Yes (*)  /usr/public/target/lib/TestAppLib.so 
0x78010000 0x7806e60c Yes (*)  /usr/public/target/usr/lib/TestAppAPILib.so 
0x78070000 0x78091d2c Yes (*)  /usr/public/target/lib/libm.so.2 
(*): Shared library is missing debugging information. 

спасибо.

ответ

2

Есть команды set debug-file-directory, symbol-file и add-symbol-file для загрузки отладочных символов из сеанса gdb. Последнему может потребоваться адрес, в котором общая библиотека была загружена в память.

Возможно, во время процесса сборки в ваши двоичные файлы были добавлены «отладки» gnu. Это означало бы, что в исполняемых файлах есть путь, закодированный, который направляет gdb, где искать отладочные символы. Подробнее можно найти here.

Смежные вопросы