【问题标题】:Extending visual studio debugger扩展视觉工作室调试器
【发布时间】:2016-05-19 17:55:28
【问题描述】:

我有一个包含几十个这样的对象的链表:

struct Item {
    Item * next;
    const char * name;
    ....
};

当我想在 Visual Studio 的调试器中查看包含哪些项目列表时,我需要将鼠标悬停/单击多次以展开整个列表,直到我点击 nullptr。这很慢,容易出错(手滑,我可以重新开始),而且不是很有条理。

是否有任何可用的 VS2015 调试器脚本,我可以在其中迭代整个列表并将名称转储到控制台或其他什么?

编辑:我发现了 concord extensibility api (https://blogs.msdn.microsoft.com/visualstudioalm/2015/10/02/announcing-visual-studio-debug-engine-extensibility-samples/),但它看起来相当复杂。

这应该是内部工具,因此开发速度/易于开发比稳健性和/或易于部署更重要。

【问题讨论】:

    标签: visual-studio visual-c++ visual-studio-2015 visual-studio-debugging


    【解决方案1】:

    如果您正在使用的数据集很小,我会使用经过验证的 std::cout 方法。

    或者只是将列表的内容转储到一个文件中,并在写入该文件后放置一个断点,以便您可以在程序继续之前检查其内容。

    【讨论】:

    • 代码库很大,我不能到处乱扔std::cout。甚至增量编译也需要大约 15 分钟。所以我需要一些可以在使用调试器单步执行代码时按需触发的东西..
    【解决方案2】:

    你可以做到。插入一个跟踪点(鼠标右键>断点>插入跟踪点)并仔细阅读该窗口的整个文本。然后你就会知道如何在输出窗口打印你想要的东西。

    在另一个有条件的行上也插入一个断点。就放一个正常的断点,然后越过红球,鼠标右键>条件,然后输入

    !next
    

    注意!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多