debugging - 是否有任何用于在 Visual Studio 2013 中调试 Qt 4.8 项目的非官方可视化工具?

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

在 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 是否不兼容?

最佳答案

其中一个应该“工作”,但要知道 Qt 5 natvis 将引用不同的对象结构,例如QString 在 Qt 5 中有一个成员 offset,但在 Qt 4.8 中没有。我从 Qt VS Addin 中获取了 Qt5.natvis 以及任何不起作用的东西,我破解了 autoexp.dat (执行此操作的旧方法)以查看 VS addin 创建的 Qt 修改并进行适当的更改。/p>

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 添加,也可以将它们放入项目树中并将它们添加到项目中。

关于debugging - 是否有任何用于在 Visual Studio 2013 中调试 Qt 4.8 项目的非官方可视化工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30046872/

相关文章:

android - J2V8 和 Stetho

visual-studio-2012 - VS2012/2013 无法显示解决方案资源管理器

c++ - 有没有办法在 Qt 中获得重绘区域?

c++ - 删除qtabwidget

c++ - qt 是否有来自 STL 的 find_if 之类的东西?

linux - 在 Linux 中分析反调试检查

c - 为什么这个堆栈粉碎?

visual-studio-2010 - 混合 C++/CLI 程序集中的 Visual Studio 2010 DataTips 问题

c# - Windows Phone - SyndicationFeed 问题

asp.net - 如何为项目中的所有文件运行 Visual Studio 标记验证