扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
首先我发现函数的返回值不合理,于是在DEBUG模式下,单步跟踪。神奇的是,我在debug界面下,竟然完全看不到所有的局部变量,无法观察到他们的值。而且在一个传值的函数调用后,我传入的实参竟然被更改了!就好像这样:
我怀疑是不是指针没控制好,覆盖了这个值了,然而仔细检查过之后,又没有发现这方面的痕迹。于是我转而求教同事。同事不愧经验丰富,过了15分钟,跑过来对我无辜地说:“你把优化选项关闭就没问题了”。我愕然:“DEBUG下也可以开优化吗?”
然而事实证明了我的无知-_-!,我的项目不知什么时候设置成这样了。。。
当我改掉以后:
一切OK,局部变量也能观察了,程序逻辑也正确了。
通过这件事,我得到一个经验,以后发现程序逻辑执行异常或跟踪调试受阻时(因为编译器的优化,许多你写的代码在汇编中被移除了),检查一下是否开了优化,能省下不少精力。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。