【问题标题】:debug visualizer of C++ custom types for Visual StudioVisual Studio 的 C++ 自定义类型的调试可视化工具
【发布时间】:2014-08-13 13:04:02
【问题描述】:

我正在使用一个包含一些尴尬类型的库。在 Visual Studio 中调试时,我想以可读的形式显示它们。我发现了一些关于如何编辑 autoexp.dat 文件的非常有用的文章。

http://www.idigitalhouse.com/Blog/?p=83

http://mariusbancila.ro/blog/2007/04/06/tweaking-autoexpdat-for-custom-types-in-vs2005/

假设我有一个字符串类:

class String {
//...
private:
    char *_cbuf;
}

然后我可以轻松添加可视化工具,因为 _cbuf 是一个成员变量。我只是写

String{
preview (
[$c._cbuf]
)
}

在 autoexp.dat 文件中 [Visualizer] 部分的开头,它可以工作。

但是假设我想显示一个更复杂的类型,它没有任何有用的成员变量,但它有非常有用的方法。例如:

class Date {
    //...
    String asString() const;
private:
    long _someReallyStrangeAndUnusefulDateRepresentation;
}

我想显示字符串而不是无用的长。怎么做?写作

Date{
preview (
[$c.asString()]
)
}

在 autoexp.dat 中不起作用。

【问题讨论】:

    标签: c++ visual-studio debugging


    【解决方案1】:

    好的,经过一些研究,它似乎通常是可能的,但不是直接通过编辑 autoexp.dat。

    第一个解决方案是使用 EEAddIn.dll,如下所述:http://msdn.microsoft.com/en-us/library/8fwk67y3%28v=VS.90%29.aspx

    另一个解决方案可能是使用内联函数,如 Lucien Murray-Pitts 在此页面上的评论:http://www.virtualdub.org/blog/pivot/entry.php?id=120,其灵感来自于 boost 调试可视化工具。

    但是我还没有尝试过这些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-17
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多