【问题标题】:Visual studio 2012 and Qt4.8.5 : How to see QString contents in debug mode.Visual Studio 2012 和 Qt4.8.5:如何在调试模式下查看 QString 内容。
【发布时间】:2020-06-03 22:55:06
【问题描述】:

我使用 Visual Studio 2012 和 Qt4.8.5,不幸的是,当我在调试模式下工作时,我看不到 QString 文本变量。有人有小费允许吗? VS2012不存在Qt4.8.5插件。

非常感谢

泽维尔

【问题讨论】:

    标签: visual-studio-2012 visual-studio-debugging qt4.8


    【解决方案1】:

    有一个快速而明确的解决方案(MSVC 原生,不需要插件也不需要设置 .dat 文件),see my answer from here

    假设你有QString str (Qt4),然后添加到调试器监视窗口:

    ((str).d)->array,su 
    

    附录 ,su 告诉调试器将数据解释为 unicode 和以空字符结尾的字符串。

    注意:对于 Qt5 QString str 可能是

    (char*)str.d + str.d->offset,su
    

    【讨论】:

    • 得到:-var-create:无法创建变量对象
    • 谢谢,Qt5 的选项((char*)str.d + str.d->offset,su) 帮助了我)
    【解决方案2】:

    除非您将调试器选项设置为“启用本机编辑并继续”,否则不会使用 autoexp.dat

    这是我 4.8.5 的 QString 的 natvis 实现(仅扩展前 25 个字符)

    <Type Name="QString">
        <DisplayString>"{d->data,sub}"</DisplayString>
        <StringView>d->data,sub</StringView>
        <Expand>
            <Item Condition="d->size &gt;= 0" Name="[size]">d->size</Item>
            <Item Condition="d->size &gt; 0" Name="[referenced]">d->ref._q_value</Item>
            <ArrayItems Condition="d->size&lt;=25">
                <Size>d->size</Size>
                <ValuePointer>d->data,c</ValuePointer>
            </ArrayItems>
            <ArrayItems Condition="d->size&gt;25">
                <Size>25</Size>
                <ValuePointer>d->data,c</ValuePointer>
            </ArrayItems>
            <Item Condition="d->size&gt;25" Name="...">d->size - 25</Item>
        </Expand>
    </Type>
    

    至少 qt4.natvis 可以与 qt5.natvis 共存,因为其中一个或另一个无法正确加载...

    【讨论】:

    • 太棒了!调试器选项设置为“启用本机编辑并继续”并且 natvis 文件工作!谢谢。
    • VS2015 中的 autoexp.dat 仍然是一个类似 INI 的文件......根本没有 XML......我错过了什么?
    【解决方案3】:


    对于 Visual 2015、2017 和 2019,
    只需为 Visual 安装专用的 Qt 插件。
    here下载

    【讨论】:

      【解决方案4】:

      对我来说,在 Qt5 和 Visual Studio 2012 中,我只是这样做了:

      项目选项 -> 调试 -> 调试器类型 -> 设置它从自动到混合

      手表中不显示字符串。

      【讨论】:

      • 您好,它不在项目的属性中。转到工具菜单 -> 选项 -> 调试 -> 编辑并继续。 检查原生编辑并继续
      【解决方案5】:

      对于 Visual Studio 2015...

      工具>选项>调试>常规>勾选“使用本机兼容模式”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-17
        • 1970-01-01
        • 1970-01-01
        • 2014-10-12
        • 2013-12-22
        相关资源
        最近更新 更多