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

[复制链接]
7393|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 | 显示全部楼层
是的,优化等级较高的时候是不利于调试的
hu12138 发表于 2015-4-10 19:59 | 显示全部楼层
我的就是这样的,但是,在watch窗口显示的还是error
戈卫东 发表于 2015-4-11 23:29 | 显示全部楼层
局部变量就不要用watch了,程序停下来,鼠标移过去,值就显示了
戈卫东 发表于 2015-4-11 23:44 | 显示全部楼层
优化设成最高确实可能无法显示变量。
有些循环的实现可能和我们写的不一样,比如我们写for (i=0; i<100; i++){} 它可能实现成递减的循环,这样我们要查看 i 的值就不可能了——因为编译器根本就没有分配这样的变量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

25

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部