Отладка разобранных библиотек с помощью gdb
в Linux и Mac OS X я могу использовать stepi и nexti для отладки приложения без отладочной информации.
В Mac OS X GDB показывает функции, которые вызываются внутри библиотеки, хотя иногда продвигает несколько инструкций ассемблера в каждой пошаговой инструкции.
В Linux, когда я вступаю в динамическую библиотеку, GDB теряется. Например, с помощью метода put () в put () есть три инструкции на ассемблере, когда gdb достигает перехода в 0x080482bf, он завершается с сообщением "Нет функции, содержащей программный счетчик для выбранного кадра ".
0x080482ba in puts@plt ()
(gdb) disassemble
Dump of assembler code for function puts@plt:
0x080482b4 : jmp *0x8049580
0x080482ba : push $0x10
0x080482bf : jmp 0x8048284
End of assembler dump.
(gdb) stepi
0x080482bf in puts@plt ()
(gdb) stepi
0x08048284 in ?? ()
(gdb) disassemble
No function contains program counter for selected frame.
Знаете ли вы, как отлаживать эти библиотечные вызовы с помощью GDB.