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

如何使用 GCC 和 objdump 從 C/C 程式碼取得彙編程式輸出?

Mary-Kate Olsen
發布: 2024-12-24 05:21:20
原創
323 人瀏覽過

How can I get assembler output from my C/C   code using GCC and objdump?

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

要分析編譯過程,提取發出的彙編程式碼至關重要。一種有效的方法是在 GCC(或 G )中使用 -S 選項。

使用 -S 選項

透過指定 -S,預處理器將處理原始文件,執行初始編譯,但在呼叫彙編器之前停止。這允許您在進行彙編之前檢查程式碼。為了提高可讀性,請使用 -fverbose-asm。

gcc -S helloworld.c
登入後複製

預設情況下,輸出檔案將命名為 helloworld.s。若要變更此設置,請使用 -o 選項。

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

分析現有物件檔案

如果您只有一個物件文件,則可以使用 objdump 和 - -disassemble (-d) 選項。

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

有關增強訊息,請考慮使用-rwC (對於符號重定位和名稱重組)、-Mintel(適用於x86 的Intel 語法)和-r(包括來自未連結物件的引用) 。

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

這些方法提供了有關編譯過程的寶貴見解,使您能夠分析您的 C/C 程式的彙編程式碼。

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

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