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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (36)

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

有什么流行的工具可以做到这一点?

提问于
用户回答回答于

询问编译器

如果你自己构建程序,你可以让你的编译器发出程序集源代码。对于大多数UNIX编译器使用-S开关。

  • 如果你使用的是GNU汇编程序,编译时-g -Wa,-alh会在标准输出中给出混合的源代码和程序集(-Wa要求编译器驱动程序将选项传递给汇编程序,-al打开汇编列表并-ah添加“高级源代码”列表): g++ -g -c -Wa,-alh foo.cc
  • 对于Visual Studio,请使用/FAsc

二进制

如果你编译了二进制文件,

  • objdump -d a.out在UNIX上使用(也适用于cygwin),
  • dumpbin /DISASM foo.exe 在Windows上。

使用你的调试器

调试器也可以反汇编。

  • disas在GDB中使用命令,
  • 或Windows上Visual Studio 的反汇编窗口。
用户回答回答于

在GCC / G ++中,用-S。编译。这将输出一个something.s带有汇编代码的文件。

扫码关注云+社区