CCS编辑器debug黄色箭头与程序执行不一致问题

[复制链接]
 楼主| wenjun_wang86 发表于 2013-10-23 18:30 | 显示全部楼层 |阅读模式
  大侠们,今日遇到一个奇怪问题,先贴代码如下:
  1. int t1 = 0, t2 = 0;//全局定义
  2. //函数体里面:
  3. func()
  4. {
  5.   t1 += 10;
  6.   if(t1 > 12)
  7.   {//语句块1
  8.    t2 = 1;
  9.   }
  10.   if(t1 < 12)
  11.   {//语句块2
  12.    t2 = -1;
  13.   }
  14. }
在debug模式下,程序运行至func函数里面时,当第一次判断t1值与12关系时,程序应该不执行语句块2,但是调试时发现,黄色箭头还会进入语句块1,接着进入语句块2;
第二次进入func函数时,原理上应该只执行语句块1,但是此时调试发现,黄色箭头还是会进入语句块2.

这个问题纠结了很久,最后发现通过观察语句块1、2的执行结果t2的值时发现了问题原因。第一次执行时,黄色箭头虽然进入了语句块1,但是并没有真的执行 t2 = 1;同样,第二次执行func时,黄色箭头虽进入了语句块2,但实际并未进行t2 = -1。

小弟不知道这个问题是CCS的BUG,还是编译器设置的有问题?我的编译器选项为:
  1. -g -pdsw225 -fr"$(Proj_dir)\Debug" -i"..\include" -d"_DEBUG" -d"LARGE_MODEL" -ml -v28

zhangmangui 发表于 2013-10-24 00:17 | 显示全部楼层
编译器不应该出现这种问题  
你在硬件仿真下设置断点试试看  
 楼主| wenjun_wang86 发表于 2013-10-24 07:33 | 显示全部楼层
zhangmangui 发表于 2013-10-24 00:17
编译器不应该出现这种问题  
你在硬件仿真下设置断点试试看

就是在硬件仿真下观察的啊,在语句块1、2当中都设置过断点,还是会出现上述情形。版主可以试试
 楼主| wenjun_wang86 发表于 2013-10-24 15:14 | 显示全部楼层
有没有大侠关注一下。。。
zhangmangui 发表于 2013-10-24 16:13 | 显示全部楼层
wenjun_wang86 发表于 2013-10-24 07:33
就是在硬件仿真下观察的啊,在语句块1、2当中都设置过断点,还是会出现上述情形。版主可以试试 ...

抽时间看看
 楼主| wenjun_wang86 发表于 2013-10-24 22:21 | 显示全部楼层
zhangmangui 发表于 2013-10-24 16:13
抽时间看看

好的,这个问题比较棘手,不确定是我编译器设置问题,还是啥TI的BUG
 楼主| wenjun_wang86 发表于 2013-10-25 07:49 | 显示全部楼层
求关注。。。。。。。。
。。。。。。。。
zhangdaxia 发表于 2019-8-28 13:42 | 显示全部楼层
请问一下,问题解决了吗?我也遇到了相同的问题
 楼主| wenjun_wang86 发表于 2020-2-8 22:44 | 显示全部楼层
zhangdaxia 发表于 2019-8-28 13:42
请问一下,问题解决了吗?我也遇到了相同的问题

重新编译一下工程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

201

帖子

1

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