打印

在IAR Embedded Workbench编译环境中,在watch窗口中,观察变量值时出现错误!

[复制链接]
6980|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liufalf007|  楼主 | 2014-12-22 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何在IAR中通过Watch窗口观察局部变量的值
在软件调试的时候发现Watch窗口中无法观察局部变量的值,总是显示<unavailable>
  设置IAR中的"Options — c/c++ compiler — Optimization — Level" 选项:
  Level的缺省值为Low,当我把Level选为None之后,即不执行任何优化时,全局变量、静态局部变量、局部变量的值都可以看到。
  结论:要想观察局部变量的值,调试的时候可以把优化等级设为None。

相关帖子

沙发
戈卫东| | 2014-12-22 11:21 | 只看该作者
不至于吧?

使用特权

评论回复
板凳
crystal1987| | 2014-12-26 17:22 | 只看该作者
这是个小技巧,收藏。如果仅为了监测,可做成全局变量,监测完在做成局部的.

使用特权

评论回复
地板
zchong| | 2014-12-27 13:54 | 只看该作者
是的,优化等级较高的时候是不利于调试的

使用特权

评论回复
5
hu12138| | 2015-4-10 19:59 | 只看该作者
我的就是这样的,但是,在watch窗口显示的还是error

使用特权

评论回复
6
戈卫东| | 2015-4-11 23:29 | 只看该作者
局部变量就不要用watch了,程序停下来,鼠标移过去,值就显示了

使用特权

评论回复
7
戈卫东| | 2015-4-11 23:44 | 只看该作者
优化设成最高确实可能无法显示变量。
有些循环的实现可能和我们写的不一样,比如我们写for (i=0; i<100; i++){} 它可能实现成递减的循环,这样我们要查看 i 的值就不可能了——因为编译器根本就没有分配这样的变量。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

25

帖子

2

粉丝