即使使用调试编译标志,表达式也会被“优化”

时间:2018-10-25 19:08:09

标签: c++ debugging gdb

我的编译标志是

-mthumb -mlittle-endian -x c++ -gdwarf-2 -g3 -fomit-frame-pointer -fnothrow-opt 
-ffreestanding  -fverbose-asm   -std=c++11 -c -fno-rtti -ffunction-sections -fdata-sections 
-fno-exceptions`

请注意-gdwarf-2 -g3

但是,我尝试读取的许多变量都读为

optimized out

1 个答案:

答案 0 :(得分:2)

-g添加了调试信息,但是它并不妨碍代码优化,因此您只要求完成一半的工作。

添加-O0-Og并阅读the manual page on debugging options

您还专门启用了一种优化(-fomit-frame-pointer);删除它。