Visual Studio 调试器:轻松查看 std::list(和其他 std 容器)

Posted

技术标签:

【中文标题】Visual Studio 调试器:轻松查看 std::list(和其他 std 容器)【英文标题】:Visual Studio Debugger: Viewing std::list (and other std containers) easily 【发布时间】:2012-04-10 22:49:05 【问题描述】:

当我尝试在 Visual Studio 调试器中查看 std::list 时,我基本上只想查看列表包含的所有 myList.size 值的数组。在理想情况下,我可以通过在 Watch Window 中输入一些 x

但是,这无济于事。相反,我必须手动扩展大量可笑的变量来逐个查看每个值:

myList -> std::_List_val -> std::_List_nod -> _Myhead -> _Myval

这只是列表中的第一个值。

这是调试查看列表中值的一种糟糕方式。有什么方法可以让我只查看列表中的所有值而不用担心实现细节?

这个问题也适用于其他 STD 容器,例如向量。我只想做“MyStdContainer, x”而不关心我如何包含我的变量。

谢谢!

【问题讨论】:

您实际上应该看到std::list 好像它是默认情况下在 VS 调试器窗口中的一个数组,在任何较新的 VS 版本中(我认为自 2005 年以来?) - 例如见technet.microsoft.com/en-us/query/aa718539。您是否偶然使用了 STL 的第三方实现(例如 STLPort)? 真的吗?我绝对不会。 STL、VS2010 的第一方实现。 确保您没有在工具 -> 选项 -> 调试 -> 常规中选中“在变量窗口中显示对象的原始结构”。 嗯。好猜测,但我没有检查它。我现在很怀疑,因为我知道它已经应该是默认功能,会四处询问。 【参考方案1】:

听起来您的autoexp.dat 文件丢失或损坏。这通常位于%VSINSTALLDIR%\Common7\Packages\Debugger\,并提供调试器可视化std:: 容器所需的信息。

如果您找到此文件,则与std::list 相关的部分开始:

;------------------------------------------------------------------------------
;  std::list from <list>
;------------------------------------------------------------------------------

【讨论】:

以上是关于Visual Studio 调试器:轻松查看 std::list(和其他 std 容器)的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 调试器中查看命名空间的全局变量?

如何在 MS Visual Studio 调试器中查看 DOMString(来自 apache xerces 库)?

如何在 Visual Studio 调试器中查看属性的整个值?

在 Visual Studio 2015 调试器中查看 Qt5.6 QStrings

Visual Studio 2015 调试时 vector 的值不能查看,怎么办

Visual Studio 调试中将结构体指针转换为结构体数组查看