方便快速的看到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。

其他的

posted @ 2020-03-24 21:37  Startu  阅读(1266)  评论(0编辑  收藏  举报