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