mon51 发表于 2014-2-8 18:02:21

Keil下为什么不能在watch里查看临时变量的数值?

今天要改一个C51的老项目,发现在WATCH里无法看局部变量的值了。即便把优化级别设到5,6级也同样。设断点也无用。版本是V7.2.

mon51 发表于 2014-2-8 18:04:13

C51 的版本是:V9.51

jiaowoxiaolu 发表于 2014-2-8 18:13:08

临时把该变量设置为全局变量,调试完了再搞回去

fanfanrenfan 发表于 2014-2-8 20:34:43

楼上的说的有理,被优化也有可能,static

qwe2231695 发表于 2014-2-15 00:06:45

单步运行的时候,是可以知道的。跳出函数,那块空间被释放了,当然也就不存在值了。

nightseas 发表于 2014-2-15 00:13:15

可能堆栈里的看不了吧

lqsoft 发表于 2014-2-15 01:47:41


因为该变量被编译器优化成了寄存器变量,所以不可以见.也就是说等效于加了register
解决办法有2个,
1.把这个变量定义为全局变量,也就是定义到所有函数体外.
2.把这个变量定义为静态变量,加上static; 这个在哪里定义都行.

michael.yang 发表于 2014-2-15 14:50:57

用Locals看啊
页: [1]
查看完整版本: Keil下为什么不能在watch里查看临时变量的数值?