教程/手册如何在 autoexp.dat 中创建 Visualizer

Posted

技术标签:

【中文标题】教程/手册如何在 autoexp.dat 中创建 Visualizer【英文标题】:Tutorial/Manual how to create Visualizer in autoexp.dat 【发布时间】:2011-02-03 06:57:59 【问题描述】:

我有一些 C++ 数据类型,我想改进我团队的调试体验。因此,我想在 autoexp.dat 文件中创建一个自定义可视化工具。 [AutoExpand] 部分似乎不够用,所以我开始查看 [Visualizer]。我发现this website 有一些解释,但是有没有全面的参考/手册/教程?例如,我不明白 $c 和 $e 之间的区别。我已经成功展示了一些基本信息,但我觉得还有很多东西要知道......

你知道什么好的资源吗?

谢谢!

【问题讨论】:

仅供参考,除了您引用的 virtualdub.org 中的 boost 沙箱链接,here 关于$c和$e的区别,followup note有注释(抱歉,如果你已经看过了)。 不,我没见过这个!非常感谢!如果你愿意,你可以让它成为一个答案! 谢谢,不客气 :-) MSDN 文档说您只能将[Visualizer]s 与_managed_ 代码一起使用。对于native C++,你应该被[AutoExpand] 规则所困扰。这似乎与从此处链接的任何 cmets、答案或站点都不一致。 msdn.microsoft.com/en-us/library/e2zc529c(v=vs.100).aspx 【参考方案1】:

似乎上面已经对此进行了评论,但提出这个问题的人不一定会阅读 cmets,因此可能会错过 boost 网站上提供的精彩教程:

https://svn.boost.org/trac/boost/wiki/DebuggerVisualizers

还有

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

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

http://www.chromium.org/developers/how-tos/how-to-set-up-visual-studio-debugger-visualizers

http://www.virtualdub.org/blog/pivot/entry.php?id=172

【讨论】:

关于 VS2008 SP1 的一个非常有用的信息是 _vcee_autoexp 环境变量。致谢:vtk.org/Wiki/ITK/Debug_Visualizers_for_Visual_Studio【参考方案2】:

下面是 boost::tuple 的可视化示例。应该很容易理解:

boost::tuples::tuple<*>
    ; Show as (11, 22, 33, ... )
    preview (
        #(
            "("
            , $e.head
            , ", "
            , $e.tail.head
            , ", "
            , $e.tail.tail.head
            , ", "
            , $e.tail.tail.tail.head
            , ", "
            , $e.tail.tail.tail.tail.head
            , ", "
            , $e.tail.tail.tail.tail.tail.head
            , ", "
            , $e.tail.tail.tail.tail.tail.tail.head
            , ", "
            , $e.tail.tail.tail.tail.tail.tail.tail.head
            , ", "
            , $e.tail.tail.tail.tail.tail.tail.tail.tail.head
            , ", "
            , $e.tail.tail.tail.tail.tail.tail.tail.tail.tail.head
            , ")"
        )
    )   
    children (
        #(
            0: $e.head
            , 1: $e.tail.head
            , 2: $e.tail.tail.head
            , 3: $e.tail.tail.tail.head
            , 4: $e.tail.tail.tail.tail.head
            , 5: $e.tail.tail.tail.tail.tail.head
            , 6: $e.tail.tail.tail.tail.tail.tail.head
            , 7: $e.tail.tail.tail.tail.tail.tail.tail.head
            , 8: $e.tail.tail.tail.tail.tail.tail.tail.tail.head
            , 9: $e.tail.tail.tail.tail.tail.tail.tail.tail.tail.head
        )
    )

【讨论】:

以上是关于教程/手册如何在 autoexp.dat 中创建 Visualizer的主要内容,如果未能解决你的问题,请参考以下文章

Autoexp.dat 版本

在调试可视化工具中转换为 std::string (autoexp.dat)

为了能够检查向量中包含的类的数据成员,我需要在 autoexp.dat 中输入啥?

如何在 Eclipse 中创建 Spring MVC 项目?

你如何在Eclipse中创建一个Spring MVC项目?

Microsoft Outlook 教程,如何在 Outlook 中创建、发送、答复和转发电子邮件?