Существует ли отдельная программа для получения той же информации из gdb info symbol

#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