В ряде случаев бывает полезно увидеть ассемблерный листинг программы на С++. Имеются онлайн средства чтобы сделать задачу, но мы рассмотрим также и другие возможности.
В компиляторе GCC ассемблерный листинг можно сгенерировать с помощью опции компиляторы -S. В этом случае следующая команда создаст файл main.s содержащий ассемблерный код.
gcc -S main.cpp
Если код содержит не только С++ но и Qt, предыдущий способ выдаст ошибку. Также желательно получить в ассемблерном листинге и вставки кода на С++. Частично эти задачи решаются следующим образом:
- Компилируется проект из Qt Creator в режиме Отладка
- В каталоге debug, где лежит наш исполняемый файл выполняем команду, где вместо a.exe пишем название нашего исполняемого файла. Получаем файл asm.lst с ассемблерным кодом и вставками на C++.
objdump -S a.exe >> asm.lst
Способ второй. В файл .pro проекта Qt Creator вставляем следующую строчку и в выходной папке /build-… появятся файлы листинга с расширениями .s
QMAKE_CXXFLAGS += -save-temps
Имеется замечательный сайт godbolt.org, позволяющий увидеть ассемблерный листинг для множества языков программирования и различных компиляторов и их версий, в общем - must have.