GCC不是直接应用C++中的优化 - 代码,而是采用某种内部语言无关的格式(称为GIMPLE),这种格式无法轻易地恢复为C++代码.
根据您的需要,您也可以
只需展开宏: g++ -E
或者查看汇编程序输出,您可以在其中查看哪行C++代码映射到哪个汇编程序块:
g++ -g ... && objdump -S output
Run Code Online (Sandbox Code Playgroud)
我不建议直接从gcc(带-S)输出汇编程序,因为生成的注释几乎没用.
1 和 2 显示在原始来源中。
3 您可以获得具有扩展宏定义(实际上经过完全预处理)的源代码-E
。
-da
4 各个优化阶段的中间代码可以通过或 等-fdump-rtl-xxx
各种-fdump-tree-xxx
选项获得-fdump-xxx
。
这些记录在这里:
http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Debugging-Options.html#Debugging-Options
5 我不认为 GCC 会进行源到源的转换,因此生成的 C++ 代码是原始的 C++ 代码。
GCC 所做的转换描述如下:
http://gcc.gnu.org/onlinedocs/gccint/Passes.html#Passes
归档时间: |
|
查看次数: |
2993 次 |
最近记录: |