作业失败

And*_*kov 1 c++ debugging visual-studio-2005 variable-assignment

我正在调试Visual Studio 2005中的大型项目的一部分,并逐行逐步执行代码.

int speed = this->values.speed;
int ref = this->values.ref_speed;
Run Code Online (Sandbox Code Playgroud)

单步经过第一行后,values.speed的值为61,但由于某种原因,速度被赋值为58.在第二行之后,values.ref_speed的值为58,但ref被赋值为30 .

暂停时,您可以看到原始值分别为61和58,但存储的值不同.

是什么导致了这种行为?

Dav*_*vid 6

如果在头文件中更改了值结构的定义而未重新编译所有目标文件,则可能会发生这种情况.然后,此文件中的代码所使用的结构的"映射"可能与代码的其余部分不匹配.这可以解释为什么其中一个变量似乎具有另一个变量的价值.

或者Visual Studio .pdb文件由于某种原因没有得到更新,Visual Studio正在寻找变量的旧位置.