CPU眼里的C/C++: 1.1 查看汇编代码的工具

手头有C/C++源代码,想查看对应的汇编代码。

1. 工具列表

  1. Compiler Explorer (https://godbolt.org/)
  2. GDB
  3. LLDB
  4. Visual Studio
  5. WinDBG
  6. VSCode
  7. CLion
  8. GCC
  9. 二进制工具 objdump/readelf/otool/…

2. Compiler Explorer

在这里插入图片描述

3. GDB

g++ test.cpp
gdb ./a.out
(gdb) disassemble main

在这里插入图片描述

3. LLDB

clang++ test.cpp
lldb ./a.out
(lldb) disassemble --name main

请添加图片描述

4. Visual Studio

若要启用“反汇编”窗口,请在“工具”>“选项”>“调试”下,选择“启用地址级调试” 。

若要在调试期间打开“反汇编”窗口,请选择“窗口”>“反汇编”或按 Alt+8 。

5. WinDBG

微软的WinDBG把反汇编叫做 unassemble. 对于函数的 unassemble, 使用 uf 命令。
在这里插入图片描述
WinDBG 经典版和 WinDBG 新版(一般带Preview字样;基本上要从 Windows Store 下载)应该只有UI的差别,内置命令一样。
WinCBD 和 WinDBG 也基本一样。
在这里插入图片描述
2023.10.24 今天打开 WinDBG Preview, 提示说已经有正式版了
在这里插入图片描述

6. VSCode

安装 CodeLLDB 插件。
编译生成 compile_commands.json 文件。
编写 launch.json 和 tasks.json 来描述构建步骤。
在命令面板中输入 ”打开反汇编视图”
在这里插入图片描述
在这里插入图片描述

7. CLion

CLion 是商业软件,需要付费购买;或者用开源项目申请License,需要开源项目有一定活跃度。

编译,设置断点,然后按两下 shift 召唤出命令快捷窗口,输入 “disasembly” 召唤出反汇编窗口:
在这里插入图片描述

8. GCC

-S 选项能生成汇编文件。

g++ test.cpp -S

在这里插入图片描述

9. 二进制工具 objdump/readelf/otool

objdump -d a.out -j .rodata

x. References

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值