首頁 > 後端開發 > C++ > GCC編譯C/C原始碼如何獲得彙編程式碼輸出?

GCC編譯C/C原始碼如何獲得彙編程式碼輸出?

Susan Sarandon
發布: 2024-12-27 06:51:09
原創
526 人瀏覽過

How Can I Get Assembly Code Output from GCC Compiling C/C   Source Code?

從GCC 中的C/C 來源取得彙編器輸出

要分析程式碼是如何編譯的,擷取發出的組譯程式碼是擷取發出的組譯程式碼是有益的。在 GCC 中,可以使用 -S 選項來實現。

gcc -S helloworld.c
登入後複製

這將呼叫預處理器和初始編譯,但在運行彙編器之前停止。

為了獲得更全面的彙編輸出,請考慮將 -fverbose-asm 與 -O0 一起使用。但是,請注意,這在預設最佳化等級下效果最好。

預設輸出檔是 helloworld.s,但可以使用 -o 進行自訂。此外,-o - 可用於將輸出直接定向到標準輸出。

gcc -S -o my_asm_output.s helloworld.c
登入後複製

如果只有目標檔案可用,則可以使用 --disassemble 選項的 objdump:

objdump -S --disassemble helloworld > helloworld.dump
登入後複製

這會將原始程式碼行與反組譯輸出交錯。啟用調試 (-g) 並避免剝離可以增強反彙編細節。

要進行更多自訂,請考慮諸如 -rwC(符號重定位)、-Mintel(Intel 語法)和 -r(對於具有佔位符號引用的目標檔案)。

例如,以下指令使用 Intel 語法提供詳細的轉儲:

objdump -drwC -Mintel -S foo.o | less
登入後複製

以上是GCC編譯C/C原始碼如何獲得彙編程式碼輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板