【发布时间】:2015-03-09 19:31:27
【问题描述】:
假设我有这样的代码(注意在编辑器中我可以看到行号)
//File example_optimization.cpp
#1 int spreadi = (d_ai - d_bi);
#2 int transactionCosti = spreadi / (spreadi < 10 ? 1 : 10);
如果编译器是优化编译器并且设置了正确的标志,我想向自己证明除以 1 并没有实际发生。
在 linux 中是否有一个工具(或可以通过管道使用的工具组合),我可以这样说:
ctoassembler -c g++ -l 1 2 example_optimization.cpp
所以这个命令说,调用 ctoassembler 使用编译器和链接器 gnu g++,并转储 c++ 文件 example_optimization.cpp 的第 1 到 2 行。默认是把汇编代码输出到stdout。
我真的不在乎用途是什么。我有兴趣能够看到我的代码被编译器转换成什么,而无需自己搜索。
如果这样更容易,我不介意使用目标文件,但不知何故,最好“并排”显示 c++ 源代码和相应的汇编代码。
【问题讨论】:
标签: c++ linux assembly disassembly