为Visual Studio开发的C++自定义类型调试可视化工具

4
我正在使用一些奇怪的类型的库。在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中不起作用。
1个回答

3

经过一些研究,似乎通常情况下是可能的,但不能直接通过编辑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调试可视化器的启发。

然而,我还没有尝试过任何一种方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接