首頁 > 後端開發 > C++ > 如何使用 GCC 和 objdump 從 C/C 產生彙編程式碼?

如何使用 GCC 和 objdump 從 C/C 產生彙編程式碼?

Mary-Kate Olsen
發布: 2024-12-27 02:48:14
原創
541 人瀏覽過

How to Generate Assembly Code from C/C   using GCC and objdump?

如何在GCC 中從C/C 來源輸出彙編程式碼

在分析編譯程式碼時,存取產生的彙編程式碼至關重要。在 GCC 中,可以使用“-S”選項來實現。

使用 -S 選項

預設情況下,「-S」在原始文件,執行初始編譯,但在呼叫彙編器之前停止。與「-fverbose-asm」結合使用,此選項將 C 程式碼與彙編程式碼作為註解關聯起來,在最佳化等級 -O0 下特別有用。

gcc -S helloworld.c
登入後複製

自訂輸出檔案

輸出檔案通常以原始檔案命名,副檔名為 .s。若要自訂輸出檔案的位置,請使用「-o」選項:

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

或者,您可以使用「-o -」輸出到控制台:

gcc -S -o - helloworld.c | less
登入後複製

存取可執行物件的組件

如果您沒有原始原始程式碼但有目標文件,使用objdump和「--disassemble」選項 (-d):

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

在原始編譯 (-g) 中啟用偵錯,以透過原始程式碼行引用增強反組譯輸出。

其他objdump 選項

考慮使用這些objdump 選項以獲取更多詳細資訊分析:

  • -rwC:符號重定位、停用換行和解角度C 名稱
  • -Mintel:用於x86反彙編的Intel 語法

For例如,以下命令提供豐富的反彙編輸出:

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

記住, “-r”對於在帶有佔位符的.o 檔案中顯示符號引用至關重要。

以上是如何使用 GCC 和 objdump 從 C/C 產生彙編程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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