繁体   English   中英

VS2005中的std :: map可视化器损坏

[英]Broken std::map visualiser in VS2005

我正在使用英特尔编译器和Visual Studio,但似乎无法调试地图中的值。 我得到一个快速预览,该预览显示了地图的大小,但是元素仅显示为“(错误)”,我将通过一个快速示例进行说明,我已经生成了一个具有单个条目myMapVariable [6] = 1的地图;

如果我将鼠标悬停在上面,则会得到“ myMapVariable 1”,然后在监视窗口中得到相同的结果,并在加号上扩展,得到一个子条目,该条目的名称为“ =((错误)”),值为= 0(这是错误的)。

我在autoexp.dat调试文件中添加了一行,该行显示了名为[raw Members]的子项下的raw成员变量。 在没有帮助的情况下,我几乎已经达到了进一步深入研究这一能力的极限,所以我想问一下这里是否有人可以提供一些见解。

您最有可能使用积极的优化设置。 至少您的屏幕快照是这种情况的典型代表。 在这种情况下,调试器会主动将热值填充到寄存器中,并且可能是在您停止时,正确可视化整个映射所需的值已经被丢弃,并被其他足够的值覆盖(例如,指向当前节点的指针)。 我可以想象以高质量的优化而闻名的Intel C ++比VC ++做这种事情的频率更高(但我也经常看到这种情况)。

考虑在Debug配置中重新编译项目(这将禁用优化器),并查看是否有帮助。

我唯一的建议是确保地图已初始化且在范围内。 否则,我不确定,我从未见过,但现在使用VS2008。

我从未能够使用Intel来解决此问题,但是现在我已移至最新的Visual Studio编译器VS2010,这不再是问题。 我将其标记为答案,因为我不想留下未解决的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM