【问题标题】:Visual Studio Debugger: Viewing std::list (and other std containers) easilyVisual Studio 调试器:轻松查看 std::list(和其他 std 容器)
【发布时间】: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 的第一方实现。
  • 确保您没有在工具 -> 选项 -> 调试 -> 常规中选中“在变量窗口中显示对象的原始结构”。
  • 嗯。好猜测,但我没有检查它。我现在很怀疑,因为我知道它已经应该是默认功能,会四处询问。

标签: c++ visual-studio std


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-25
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    相关资源
    最近更新 更多