【发布时间】:2012-03-25 05:27:08
【问题描述】:
我有一个如下所示的结构定义:
struct mystruct
{
int first;
int second;
};
我最近更新了,增加了更多成员:
struct mystruct
{
int first;
int additional1;
int additional2;
int second;
};
我正在调试如下代码:
mystruct object;
...
object.second = 128;
printf("%d\n", object.second);
执行代码后,我在 Quick-Watch 窗口中查看 object.second 并看到 0;但是,代码输出128。当我查看object 时,我只看到first 和second 成员,好像快速观察窗口仍然使用我的旧结构声明。
此外,object.second 的地址,如果我从代码中打印出来,与我在 Quick-Watch 窗口中输入&object.second 时看到的不同(相差几句话;实际上是我的结构包含几十个成员,为简洁起见我省略了)。
我尝试通过重新编译、重新启动、还原最近的更改(我使用版本控制系统)并返回它来修复这些不兼容性。我还有什么办法可以解决这个问题?
我使用的是MS Visual Studio 2005。我的代码实际上是C++,但这部分属于C/C++通用子集。
【问题讨论】:
-
您是否尝试过删除 PDB 和/或 NCB 文件?
-
没有帮助(不过感谢您的想法)
-
您说代码在一个公共子集中-您是否重建了它(我假设它是一个库)?你有没有点赞custom data type displays?
-
@tinman 是的,我试图重建它;不,我不使用自定义数据类型显示;无论如何,我所有的类型都只是结构/整数
标签: c visual-studio visual-studio-2005