Как разобрать файл .elf в файл .asm в riscv

#c #gcc #riscv

Вопрос:

Я создал файл .elf с помощью

riscv64-неизвестно-elf-gcc -март=rv64imac -mabi=lp64 -Tlinker.ld *.o добавить.o -o добавить.elf -статические -ностартфайлы -lm -lgcc

И теперь я хочу увидеть стек, чтобы проверить значения, присвоенные переменным, используемым в моем add.c. Я полагаю, что то же самое можно получить из файла .dasm/.asm. Как я могу создать файл .asm/.dasm из файла .elf?

Ответ №1:

Просто в качестве дополнения к ответу дратеника.

Я использую riscv32-неизвестный-эльф-objdump —разобрать-все ИМЯ.эльф > ИМЯ.disasm

Таким образом, вам даже не придется переходить к варианту-S. И можете просто разобрать свой файл .elf.

Опять же, как отметил дратеник, вам нужно настроить префикс objdump для вашей цепочки инструментов, также известной как. ваш префикс компилятора

Ответ №2:

Вы можете остановить gcc на этапе сборки, добавив -S переключатель, после чего выводимый файл -o будет исходным файлом asm. Или вы можете позволить gcc закончить, а затем разобрать полученный двоичный objdump -d файл на части . Конечно, вам нужно запустить objdump двоичный файл из той же цепочки инструментов, а не из вашей системы.