在VS2005中破坏了std :: map可视化工具

时间:2009-07-09 05:40:49

标签: c++ visual-studio visual-studio-2005 stl visualization

我正在使用英特尔编译器和visual studio,我似乎无法调试地图中的值。我得到一个快速预览,显示地图的大小,但元素只显示为“(错误)”,我将用一个简单的例子说明,我生成了一个带有单个条目的地图myMapVariable [6] = 1 ;

如果我鼠标移动我得到这个“myMapVariable 1” 并且在监视窗口中,我得到相同的东西,扩展加号给出一个子条目,其中name =“(error)”和value = 0(这是错误的)。

我在autoexp.dat调试文件中添加了一行,显示了名为[raw members]的子项下的原始成员变量。我已经达到了我无需帮助就能进一步挖掘这个能力的极限,所以我想问一下这里是否有人可以提供一些见解。

3 个答案:

答案 0 :(得分:1)

您最有可能使用积极的优化设置。至少你的截图是典型的那种东西。在这种情况下,调试器主动将热值填充到寄存器中,并且可能是,在您停止的时候,正确可视化整个映射所需的值已经被丢弃并被其他足够的值覆盖(比如说,指向当前节点的指针)。我认为英特尔C ++以其高质量的优化而闻名,它比VC ++更经常地做这种事情(但我也经常看到这种情况)。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我从来没有能够使用英特尔解决这个问题,但我现在已经转移到最新的visual studio编译器VS2010,这不再是一个问题。我将此标记为答案,因为我不想留下未解决的问题。