黑皮男 发表于 2015-5-27 16:05:05

第二重if语句内无法设置断点

第二重if内无法设置断点,而且单步调试也不能进入第二个if内,但是全速运行现象正确,我使用的是IAR,求解
uint32_t Time_Auto_Decrement(uint32_t * delay)
{
        uint32_t temp = 0;
      (*delay) = (*delay);
      uint32_t pd = (*delay);
       // uint32_t * pd = delay;
        if(pd != 0)
        {
                pd--;
                if(pd == 0)
                {
                        temp = 1;
                        pd = 0;
                }
                else
                {
                        temp = 0;
                }

        }
      (*delay) = pd;
        return temp;
}


发表于 2015-5-27 16:14:53

if(pd != 0)
这里应该是优化了。第一个判断是不等于0,也就是后面应该不会进入判断。你改一下这个判断条件,试试。

黑皮男 发表于 2015-5-27 16:16:59

安 发表于 2015-5-27 16:14
if(pd != 0)
这里应该是优化了。第一个判断是不等于0,也就是后面应该不会进入判断。你改一下这个判断条件 ...

我改成if(pd ==0 )也是一样的情况

creep 发表于 2015-5-27 17:29:19

关掉iar的优化呢,是不是优化掉了

上达到 发表于 2015-5-27 18:01:16

赚金币啊

上达到 发表于 2015-5-27 18:02:17

赚金币啊啊啊啊

黑皮男 发表于 2015-5-28 08:05:15

creep 发表于 2015-5-27 17:29
关掉iar的优化呢,是不是优化掉了

是优化的原因

黑皮男 发表于 2015-5-28 08:05:55

安 发表于 2015-5-27 16:14
if(pd != 0)
这里应该是优化了。第一个判断是不等于0,也就是后面应该不会进入判断。你改一下这个判断条件 ...

是优化的我问题,把优化关掉就好了
页: [1]
查看完整版本: 第二重if语句内无法设置断点