【经验分享】如何查看C++生成的汇编代码?

想要真正的理解一段代码到底是怎么执行的,还是要从汇编的层面去看,那怎么得到一段c++代码所对应的汇编代码呢,下面为你介绍三种方式。

1. gcc编译生成XXX.s文件

一般来讲,给你一个cpp文件,比如test.cpp,然后我们编译都是直接g++ test.cpp这样简单直接的方式,但其实它中间有很多个过程的,包含预处理、编译、链接等过程,而这其中的编译这个过程其实就是生成了汇编文件。

比如对于一个cpp文件,我们执行下列命令:

g++ -E test.cpp -o test.i  #预处理过程
g++ -S test.i -o test.s  #编译过程

这样生成test.s就是test.cpp所对应的汇编代码,当然我们也可以一步到位,直接使用g++ -S test.cpp -o test.s也是可以的。

2. 使用objdump命令得到汇编代码

linux下的objdump命令用于从可执行文件或者目标文件中显示某些信息,所以用它也可以得到可执行文件对应的汇编代码。

比如对于test.cpp,可以使用如下的命令得到汇编指令:

g++ test.cpp -o test
objdump -d test

通过这样的方式能看到可执行文件所对应的汇编指令。

3.

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值