8

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

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

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

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

预先感谢您的帮助。

4

2 回答 2

3

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

于 2010-02-25T17:41:02.573 回答
3

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

  • 对于 x86:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\NativeDE\VisualizerMaxChildren
  • 对于 x64:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\NativeDE\VisualizerMaxChildren

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

于 2011-04-14T18:32:51.720 回答