方便快速的看到C/C++代碼匯編 objdump 英特爾語法


概述

因為奇怪的考試要求,最近經常有奇怪的問題,例如為什么(++a)+(++a)=14
發現反編譯出匯編之后,就能解釋很多奇怪的問題

Objdump

一次意外知道了linux上面的 objdump 可以方便的看out文件的匯編代碼,所以 這里記錄下來,不然每次都得查

  • 默認
objdump -d program_name

不過默認出來的匯編語法是AT&T 語法,和常見的語法不同,看的難受,所以 ⬇

  • 英特爾語法
objdump -M intel -d program_name
  • 源代碼匯編交替顯示 需要編譯時帶-g參數
objdump -S 
  • 最常用命令 intel輸出 源代碼匯編交替顯示 解析C++符號(垃圾C++反編譯一坨翔/(ㄒoㄒ)/~~ )
objdump -M intel -S -C -d a.out

所有參數

  • -d:將代碼段反匯編
  • -S:將代碼段反匯編的同時,將反匯編代碼和源代碼交替顯示,編譯時需要給出-g,即需要調試信息。
  • -C:將C++符號名逆向解析。
  • -l:反匯編代碼中插入源代碼的文件名和行號。
  • -j section:僅反匯編指定的section。可以有多個-j參數來選擇多個section。

其他的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM