Keil下为什么不能在watch里查看临时变量的数值?
今天要改一个C51的老项目,发现在WATCH里无法看局部变量的值了。即便把优化级别设到5,6级也同样。设断点也无用。版本是V7.2. C51 的版本是:V9.51 临时把该变量设置为全局变量,调试完了再搞回去 楼上的说的有理,被优化也有可能,static 单步运行的时候,是可以知道的。跳出函数,那块空间被释放了,当然也就不存在值了。 可能堆栈里的看不了吧因为该变量被编译器优化成了寄存器变量,所以不可以见.也就是说等效于加了register
解决办法有2个,
1.把这个变量定义为全局变量,也就是定义到所有函数体外.
2.把这个变量定义为静态变量,加上static; 这个在哪里定义都行. 用Locals看啊
页:
[1]