在Visual Studio调试中检查STL容器

kev*_*n42 29 c++ debugging stl visual-studio

如果我有一个std::vectorstd::map变量,并且我想看到内容,那么在调试时看到第n个元素会非常痛苦.是否有插件或一些技巧,以便在调试时更容易观察STL容器变量(VS2003/2005/2008)

Ada*_*eld 19

如果要同时观看多个元素,可以附加逗号和元素数量,如下所示:

(v._Myfirst)[startIndex], count

但是,请注意count必须是常量,它不能是另一个表达式的结果.


chr*_*r_f 14

对于向量,msdn论坛上的这个主题有一个代码片段,用于设置可能有帮助的向量索引上的监视.

  • 对于那些懒于遵循链接的人,解决方案是`((v)._ Myfirst)[index]` (18认同)

Ste*_*ner 11

在VS2005和VS 2008中,您可以看到STL容器的内容.获取数据的规则在autoexp.dat"c:\ Program Files\Microsoft Visual Studio 9\Common7\Packages\Debugger\autoexp.dat"中.

AutoExp.dat旨在自定义.但是,STL defs位于名为[Visualizer]的部分下.如果你能找出该部分使用的语言,那么你就会有更多的权力,但我建议你不要单独留下那部分.

Autoexp.dat存在于VS2003中,但不支持STL容器([Visualizer]不存在).在VS2003中,您必须手动导航基础数据表示.

通过修改autoexp.dat,可以添加用于导航自己类型的数据表示的规则,以便更容易调试.如果你这样做,你应该只添加[AutoExp]下的内容.在修改之前,请小心并备份此文件.


1''*_*1'' 7

要在Visual Studio调试器中查看容器的第n个元素,请使用:

container.operator[](n)
Run Code Online (Sandbox Code Playgroud)


max*_*bog 5

您可以创建自定义可视化工具查看:http://www.virtualdub.org/blog/pivot/entry.php?id = 120