遇到一个足够妖的有关问题,借这里人气请问上

遇到一个足够妖的问题,借这里人气请教下
本帖最后由 jiaoyun007 于 2013-02-16 10:26:45 编辑
在VxWorks下遇到一个很有意思的问题,就是定义了一个宏:

typedef enum
{
    LOCAL = 0,
    INCOMING = 1,
    OUTGOING = 2
} MODE_t;

,如上面所示,然后在一个函数中用到它,代码内容如下:

...
if (pCb->mode == LOCAL)
{
    ...
}
...
,在这里经查看打印,pCb->mode的内容是0,但是进不去这个if语句后面花括号里的代码,再加打印发现,调用此函数之前和之后,LOCAL的值都是0,一进入此函数,LOCAL的值就变成1了,但是并没有在哪里修改LOCAL这个宏的值

同样的代码在Simulator上运行就没有问题,不过底层代码是Windows的

我猜会不会是编译优化引起来的,大家帮助分析下

顺祝各位新年愉快,谢谢各位!
编译优化 windows

------解决方案--------------------
coredump看下汇编代码
------解决方案--------------------
条件断点 - -
------解决方案--------------------
 VxWorks是收费的,应该提供服务