#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
двоичный файл из той же цепочки инструментов, а не из вашей системы.