#debugging #gdb #elf #objdump #readelf
#отладка #gdb #elf #objdump #readelf
Вопрос:
Если я загружаю библиотеку в gdb и делаю info symbol 0xB0153C
, я получаю что-то вроде function offset
Есть ли способ получить эту же информацию без gdb? Например, какой-нибудь параметр readelf / objdump?
Спасибо
Комментарии:
1.
objdump --dwarf
предоставляет вам всю отладочную информацию. Но почему бы не использовать gdb, если он уже предоставляет вам необходимую информацию?
Ответ №1:
Есть ли способ получить эту же информацию без gdb?
Я не знаю ни одного инструмента, который будет печатать function offset.
Используйте addr2line
для получения имени заключающей функции:
(gdb) info sym 0x108a
main 10 in section .text
addr2line -fe a.out 0x108a
main
??:?
Или используйте objdump -d
с помощью сценариев для вычисления смещения (здесь 0x108a - 0x1080
):
objdump -d a.out | egrep '>:| 108a:' | grep -B1 '108a:'
0000000000001080 <main>:
108a: 48 83 ec 38 sub $0x38,%rsp