VS2010 RC - 调试器中只有100个std :: map元素

时间:2010-02-24 15:51:06

标签: c++ visual-studio debugging visual-studio-2010 stdmap

当我想查看std :: map容器的所有元素时,我在VS 2010 RC中调试我的应用程序时遇到了一个小问题。

当调试器到达断点并且我想在元素检查器中检查映射的值(在'Locals'窗口中以及在用鼠标悬停变量名后的弹出窗口中)并且我向下滚动它停止在100元素上的元素列表,我不能下一个元素。地图包含200多个元素(地图的计数器参数显示正确)但我无法在元素检查器中查看它们。

即使在填充了200个int值的最简单的std::map<int, int>中也会出现问题。

也许这是一个设置问题,但我尝试了很多组合,但仍然无效。也许有人有一些想法如何解决这个问题。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

此类信息的显示由autoexp.dat文件指导(通常位于“Program Files *”\“Microsoft Visual Studio *”\ Common7 \ Packages \ Debugger中)。 似乎Microsoft在#tree运算符中添加了100个元素的硬编码限制,以避免在树中出现循环时冻结Visual Studio。

答案 1 :(得分:3)

使用VS 2010 SP1,此限制已增加到默认值2000条目。这也可以通过设置注册表项来修改(有关修改注册表的所有标准警告都适用于此处):

  • for x86: HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ VisualStudio的\ 10.0 \ NativeDE \ VisualizerMaxChildren
  • for x64: HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ VisualStudio的\ 10.0 \ NativeDE \ VisualizerMaxChildren

Scot Brennecke,升级工程师 Microsoft VC ++支持