如何查看C++程序的汇编代码?

158

如何查看C++程序的汇编代码?

有哪些常用的工具可以实现这一功能?


微软 Visual C++ Express 只需要设置一个断点,然后按下 Alt + 8 即可。 - jyz
可能重复:https://dev59.com/FHVC5IYBdhLWcg3w9GE9 - legends2k
相关内容:如何从GCC/clang汇编输出中去除“噪音”?包括创建简单函数的提示,其汇编代码很有趣(例如函数参数而不是常量),以及链接到Matt Godbolt的CppCon演讲,介绍了编译器输出中要注意的内容。 - Peter Cordes
14个回答

3
你可以尝试访问这个网站:http://assembly.ynh.io/。在那里,你可以粘贴你的C或C++代码,然后点击一个蓝色按钮来查看汇编语言等效版本。

FYI,加载失败 - kaiwan
是的,在2015年它还能正常工作,然后突然就停了。然后出现了ctoassembly.com,但它只适用于C语言的一小部分。同样的事情发生了:再也无法加载了。太糟糕了。 - Gomes J. A.

2
在Visual Studio中,您可以为C++项目生成汇编程序清单。
转到项目属性,然后转到C++ / 输出文件,并设置汇编器输出设置和ASM列表位置为文件名。

1
在Intel Mac OS X 10.8(Mountain Lion)上,-masm=intel指令无法正常工作。但是,如果您安装了Xcode,它应该已经安装了名为“otool”的工具:
otool code.o -tV

您需要将编译后的目标代码作为参数提供。


0

如果您是Eclipse用户,可以使用反汇编视图

反汇编视图显示加载的程序作为汇编指令与源代码混合比较。当前执行的行由箭头标记指示并在视图中突出显示。您可以在反汇编视图中执行以下任务:

  • 在任何汇编指令的开头设置断点
  • 启用和禁用断点并设置其属性
  • 逐步执行程序的反汇编指令
  • 跳转到程序中的特定指令

你能详细说明一下吗? - Peter Mortensen
在 MSVC 中进行调试时,还可以查看汇编视图。 - phuclv
我现在没有可用的Eclipse C++开发环境,但这是官方文档:http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Freference%2Fcdt_u_dissassembly_view.htm - Pieter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接