Каков рекомендуемый способ выполнения отладки вызовов системных библиотек на уровне исходного кода? - PullRequest
2 голосов
/ 01 сентября 2011

Мне нужно отладить некоторые вызовы в системных библиотеках, чтобы понять, как различаются вызовы и почему тот или иной сбой будет.

В настоящее время в дистрибутивах Linux распространены раздетые системные библиотеки.и отдельные файлы символов отладки.Например, /lib/libc-2.8.so лишен символов, оставляя после себя раздел с именем .gnu_debuglink, который содержит информацию для поиска отдельного файла отладки.Отдельные файлы отладки устанавливаются через пакет отладки и содержат символическую информацию, необходимую для gdb.Это хорошо описано здесь http://www.technovelty.org/code/debug-info-symbols.html и http://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html

После установки пакета отладки и источников я ожидал, что GDB найдет символы и источники, и я смогу просматривать списки и шагв звонки.Вместо этого GDB говорит мне «номер строки не известен для xyz»

Я проверил, что местоположение файла отладки правильно, и каталоги установлены в исходные каталоги.

Это дажеможно делать то, что я хочу?Я поступаю об этом неправильно?Есть ли более простой способ?

1 Ответ

0 голосов
/ 27 сентября 2011

Вы пытались установить параметр debug-file-directory в GDB?В соответствии с документацией, которую вы указали, он должен делать то, что вы хотите:

set debug-file-directory directories Установить каталоги, в которых gdb ищет отдельные файлы информации отладки, в каталог.Можно установить несколько компонентов каталогов, объединяя их с помощью разделителя каталогов.

show debug-file-directory Показать каталоги, в которых gdb выполняет поиск отдельных файлов информации об отладке.

Например, в моем дистрибутиве Fedoraкаталог /usr/lib/debug.

Вы также можете определить его во время компиляции с помощью

configure --with-separate-debug-dir=/usr/lib/debug ...
...