在日常开发中,我们经常会在 Debug 模式下打断点进行调试,并通过 LLDB 的 po
命令在控制台打印一些变量的值,以方便排查问题。
今天在 Release 模式下编译运行项目,发现要打印某一变量的值时(po xxx
),报如下错误:
1 | error: Couldn't materialize: couldn't get the value of variable xxx: no location, value may have been optimized out |
大致意思是说,xxx
的值不存在,可能已经被编译优化了。而且在断点模式下当我们把鼠标的箭头移到某一变量上要进行快速浏览时,发现它们的值都是 nil
。