Nea*_*eal 69 c gcc compiler-optimization compiler-options
我正在努力学习汇编语言.我搜索并发现如何反汇编.c文件,但我认为它产生了一些优化版本的程序.有什么办法可以让我看到与我的C文件对应的确切汇编代码.
pmr*_*pmr 97
gcc选项-O可实现不同级别的优化.使用-O0禁用它们,并使用-S输出组件.-O3是最高级别的优化.
从gcc 4.8开始,优化级别-Og可用.它支持不干扰调试的优化,是标准编辑 - 编译 - 调试周期的推荐默认值.
要将组件的方言更改为英特尔或att使用-masm=intel或-masm=att.
您也可以手动启用某些优化-fname.
看一看在GCC手册的更多.
对于gcc,您要省略传递给编译器的任何-O1 -O2或-O3选项,或者如果您已经拥有它们,则可以附加-O0选项以再次将其关闭.它还可以帮助您添加-g进行调试,以便您可以在调试器中查看c源代码和反汇编代码.
另见:http://sourceware.org/gdb/onlinedocs/gdb/Optimized-Code.html
您还可以使用 #pragma GCC Push_options 在内部控制优化
#pragma GCC push_options
/* #pragma GCC optimize ("unroll-loops") */
.... code here .....
#pragma GCC pop_options
Run Code Online (Sandbox Code Playgroud)