【问题标题】:Is there any unofficial visualizer for debugging Qt 4.8 projects in Visual Studio 2013?在 Visual Studio 2013 中是否有用于调试 Qt 4.8 项目的非官方可视化工具?
【发布时间】:2015-05-05 07:39:02
【问题描述】:

在 Visual Studio 2013 中调试对 Qt 4.8 类型的支持需要哪些文件?我听说过 *.natvis 文件,但我只找到了适用于 Visual Studio 2013 的 Qt5 *.natvis 文件或适用于 Visual Studio 2012 的 Qt4 *.natvis。它们对我不起作用。 Visual Studio 2012 *.natvis 和 Visual Studio 2013 *.natvis 不兼容吗?

【问题讨论】:

    标签: debugging visual-studio-2013 qt4.8 natvis


    【解决方案1】:

    任何一个都应该“工作”,但要知道 Qt 5 natvis 将引用不同的对象结构,例如QString 在 Qt 5 中有一个成员 offset,但在 Qt 4.8 中没有。我从 Qt VS 插件中获取了 Qt5.natvis 以及任何不起作用的东西,我打开了 autoexp.dat(这样做的旧方法)来查看 VS 插件创建的 Qt 修改并进行适当的更改。

    autoexp.dat 中的 QString:

    QString|*::QString{
        preview         ([$e.d->data,su])
        stringview      ([$e.d->data,sub])
        children
        (
            #(
                d: $c.d,
                [size]: $c.d->size,
                [referenced]: $c.d->ref._q_value
            )
        )
    }
    

    Qt5.natvis 中的QString:

    <Type Name="QString">
        <DisplayString>{((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),sub}</DisplayString>
        <StringView>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),sub</StringView>
        <Expand>
            <Item Name="[size]">d-&gt;size</Item>
            <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
            <ArrayItems>
                <Size>d-&gt;size</Size>
                <ValuePointer>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),c</ValuePointer>
            </ArrayItems>
        </Expand>
    </Type>
    

    您是如何尝试安装它们的?你得到什么错误?它们可以放在 Documents\Visual Studio 2015\Visualizers 中以由 IDE 添加,也可以将它们放在项目树中并添加到项目中。

    【讨论】:

    • 您介意分享您的 qt4.natvis,例如作为 GIST?
    猜你喜欢
    • 2011-02-12
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    相关资源
    最近更新 更多