打印

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

[复制链接]
3692|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wenjun_wang86|  楼主 | 2013-10-23 18:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  大侠们,今日遇到一个奇怪问题,先贴代码如下:
int t1 = 0, t2 = 0;//全局定义
//函数体里面:
func()
{
  t1 += 10;
  if(t1 > 12)
  {//语句块1
   t2 = 1;
  }
  if(t1 < 12)
  {//语句块2
   t2 = -1;
  }
}
在debug模式下,程序运行至func函数里面时,当第一次判断t1值与12关系时,程序应该不执行语句块2,但是调试时发现,黄色箭头还会进入语句块1,接着进入语句块2;
第二次进入func函数时,原理上应该只执行语句块1,但是此时调试发现,黄色箭头还是会进入语句块2.

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

小弟不知道这个问题是CCS的BUG,还是编译器设置的有问题?我的编译器选项为:
-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 | 只看该作者
有没有大侠关注一下。。。

使用特权

评论回复
5
zhangmangui| | 2013-10-24 16:13 | 只看该作者
wenjun_wang86 发表于 2013-10-24 07:33
就是在硬件仿真下观察的啊,在语句块1、2当中都设置过断点,还是会出现上述情形。版主可以试试 ...

抽时间看看

使用特权

评论回复
6
wenjun_wang86|  楼主 | 2013-10-24 22:21 | 只看该作者
zhangmangui 发表于 2013-10-24 16:13
抽时间看看

好的,这个问题比较棘手,不确定是我编译器设置问题,还是啥TI的BUG

使用特权

评论回复
7
wenjun_wang86|  楼主 | 2013-10-25 07:49 | 只看该作者
求关注。。。。。。。。
。。。。。。。。

使用特权

评论回复
8
zhangdaxia| | 2019-8-28 13:42 | 只看该作者
请问一下,问题解决了吗?我也遇到了相同的问题

使用特权

评论回复
9
wenjun_wang86|  楼主 | 2020-2-8 22:44 | 只看该作者
zhangdaxia 发表于 2019-8-28 13:42
请问一下,问题解决了吗?我也遇到了相同的问题

重新编译一下工程

使用特权

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

本版积分规则

14

主题

201

帖子

1

粉丝