Используйте параметр -S
для gcc (или g ++).
gcc -S helloworld.c
Это запустит препроцессор (cpp) над helloworld.c, выполнит первоначальную компиляцию и затем остановится до запуска ассемблера.
По умолчанию будет выведен файл helloworld.s
. Выходной файл все еще можно настроить с помощью опции -o
.
gcc -S -o my_asm_output.s helloworld.c
Конечно, это работает, только если у вас есть оригинальный источник.
Альтернативой, если у вас есть только результирующий объектный файл, является использование objdump
путем установки опции --disassemble
(или -d
для сокращенной формы).
objdump -S --disassemble helloworld > helloworld.dump
Этот параметр лучше всего работает, если для объектного файла включена опция отладки (-g
во время компиляции) и файл не был извлечен.
Запуск file helloworld
даст вам некоторое представление об уровне детализации, который вы получите, используя objdump.