Sar*_*ang 12 c++ assembly gcc clang visual-studio
想知道是否有可能从clang生成交错的源和汇编?我正在寻找与gcc命令相当的东西(如http://www.fclose.com/240/generate-a-mixed-source-and-assembly-listing-using-gcc/所示)
gcc -Wa,-adhln -g source_code.c > assembly_list.s
Run Code Online (Sandbox Code Playgroud)
我访问过Link:如何在gcc中从C/C++源获得汇编程序输出?但它到目前为止列出了程序集 - 但没有交错.
此外,Visual Studio确实为您提供了非常好的交错式汇编输出,详细信息如下:如何使用Visual C++查看代码背后的程序集?
谢谢你的帮助.
萨朗
去年有时候似乎有一个错误报道:http://llvm.org/bugs/show_bug.cgi?id = 16647
Bug 16647 - No option to produce mixed source + assembly listing?
Run Code Online (Sandbox Code Playgroud)
所以,因为它仍然是NEW我猜clang还没有这个支持.
作为替代方案,如何编译代码然后使用objdump -S?输出格式有点类似......
截至 2016 年 8 月,@dagosht 提到的错误仍然存在。但是,链接错误 17465提供了一种解决方法:clang -no-integrated-as -Xassembler -adhln。它禁用了 clang 集成的汇编程序并调用了一个外部汇编程序,希望它支持列表生成选项。
这在 Linux 中可以正常工作,但在 Mac OS X 中不起作用(从 10.11.6 开始)。问题是,即使 OS X 中的外部汇编器也不支持列表生成选项 - 您可以使用man as.
objdump -S是一种在 Linux 中也能很好地工作的替代方法,但 Mac OS X 的 objdump 替代方法是 otool,它确实提供反汇编但不提供源代码隔行扫描。希望这会很快改变,因为 otool 似乎正在退出,而 llvm 发展自己的 objdump。见man llvm-otool。
最后,对于 OS X,最好的选择似乎是使用gobjdump -S来自 binutils 的 , 。它可以与 MacPorts 或 brew 一起安装。
| 归档时间: |
|
| 查看次数: |
4588 次 |
| 最近记录: |