即使使用调试编译标志,表达式也是"optimized out"

expression is "optimized out" even with debug compile flags

本文关键字:optimized out 表达式 调试 编译 标志      更新时间:2023-10-16

我的编译标志是

-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

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

添加-O0-Og,并阅读有关调试选项的手册页面。

您还专门启用了一个优化(-fomit-frame-pointer(;去掉它。