C++赋值错误求帮忙

在写一个自定义的component的时候碰到的问题,中间用到了AvoidanceManager,在engine的source里
cpp文件里面有这么一句:

ReturnVelocity = BestVelocity;

但是并没能赋值给左边的变量。
screenshot1.jpg

screenshot2.jpg

上面是debug时候的截图,可以看到赋值后左边的值不是(26,-298, 0),而是(0,0,0)……

从来没有碰上过这种情况。。。赋值语句不应该产生歧义的吧。。。。

有没有人能帮下忙。。项目做到后期碰上这么个奇怪的问题……解决不了的话好多代码都要重写了T_T

确定不是多线程 确定是同一个 frame 例如 多线程 或者 函数多次调用 不是在同一次函数调用中

可能 Visual Studio debugger skipping lines - Debugging, Optimization, & Profiling - Unreal Engine Forums

这一定是编译器优化导致debug信息不对而已,这一切都是错觉,淡定。
你用的是development或者debuggame编译的版本吧,用debug编译后再看应该就没问题了。

感谢回复!
确定不是多线程,确定是在一个frame,确定是在同一次函数调用中
函数只在一个component的tick component里面调用过一次。。没有其他的调用。。
用的是debuggame editor的编译,存在问题。。
好像是编译器优化把什么东西优化没了。。
仅仅是编译器优化的问题也就算了。。。
但是……
返回值也是错误的。。这就比较麻烦了。。。

找了一下没有找到debug的编译,只有debuggame 和debuggame editor,
可以问一下从哪能找到debug的编译吗?

你用的是launcher版本吧?launcher版本的引擎是不会重新编译的,只会编译game模块,所以没有debug版本引擎的选项,如果你是源码版本的话就有了

如果不是多线程,这里赋值完之后没有覆盖,照道理是不会有问题的,你说的返回值错误是上一层函数拿到的数值错误吗?会不会也是编译器优化所以结果出错?或者返回值的变量被某些之后执行的越界代码冲了内存?

http://blog.csdn.net/lqpgfz/article/details/46813791