objdump命令助你看计算机执行过程

objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具。

最近的工作需要将一个模块部署在不同的硬件平台上,所以特别关注不同硬件平台的编译环境和指令差异。

为了看不同平台编译出来的可执行文件的差异,所以用到了这个objdump指令,特在此记录这个指令的常用方法。

本人测试是在MAC OS上做的,

$objdump -version
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
  Optimized build.
  Default target: x86_64-apple-darwin18.7.0
  Host CPU: skylake

  Registered Targets:
    aarch64    - AArch64 (little endian)
    aarch64_be - AArch64 (big endian)
    arm        - ARM
    arm64      - ARM64 (little endian)
    armeb      - ARM (big endian)
    thumb      - Thumb
    thumbeb    - Thumb (big endian)
    x86        - 32-bit X86: Pentium-Pro and above
    x86-64     - 64-bit X86: EM64T and AMD64

为了看具体指令,objdump -S  xxx

$objdump  -S a.out

a.out:	file format Mach-O 64-bit x86-64

Disassembly of section __TEXT,__text:
__text:
100000f80:	55 	pushq	%rbp
100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值