LINUX.ORG.RU

gdb дизасемблер и больше комментариев в asm'е

 , , ,


0

2

Всем привет. Пишу в на C++ для ARM. При падении приложения лезу в дизасемблер, но комментов что из C++ превратилось в этот код толком нет. Есть возможность заставить gdb как-то сопоставлять asm код с С++ кодом (чтобы легче в нем было разбираться)?

Смотри тут. Там только для x86 пример, но суть думаю понятна.

m0rph ★★★★★
()
Последнее исправление: m0rph (всего исправлений: 3)

но комментов что из C++ превратилось в этот код толком нет

эээ... а как каменты вообще могут попасть в бинарник???

q11q11 ★★★★★
()
Ответ на: комментарий от q11q11

это называется отладочная информация, емнип исходник целиком включить можно

wakuwaku ★★★★
()

g++ -с -g3 source.cc добавит в бинарники отладочную информацию. Обычно это имена символов, номера строк и путь к исходнику. gdb подхватывает их автоматически.

objdump -S binary.o выводит содержимое бинарника в виде смеси ассемблера и исходника.

i-rinat ★★★★★
()

Исходник надо собирать с отладочной информацией — опция -ggdb. Если собирается автотулзами или какой-то другой системой сборки — вписать -ggdb в CFLAGS и в CXXFLAGS до вызова ./configure.

Чтобы смотреть одновременно и ассемблерный и машинный код в gdb нажать Ctrl+X,2 — тогда он переключится в трёх-оконный режим, вверху будут исходники, посредине ассемблер и внизу консоль для ввода команд.

Кстати, gdb будет искать исходники в том каталоге, в котором они лежали в момент сборки. Т.е. gdb надо запускать на той же машине, на которой собирались исходники.

anonymous
()
Ответ на: комментарий от anonymous

Кстати, gdb будет искать исходники в том каталоге, в котором они лежали в момент сборки. Т.е. gdb надо запускать на той же машине, на которой собирались исходники.

Фехня

set-solib-absolute-prefix /path/to/objdir

mv ★★★★★
()

так вы не в дизассемблер лезьте, а в gdb. gcc пакует отладочную информацию в формате DWARF.

Krieger_Od ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.