WenCoo 2023-04-04 14:17 采纳率: 50%
浏览 83
已结题

vscode调试qt不显示值

问题遇到的现象和发生背景

我的编程环境是:本地是一台win10的笔记本,使用vscode软件,远程到一台gpu服务器上,GPU服务器上有docker,通过端口,连接到了docker里面,进行代码开发,项目中是c++项目,用到了qt,发现在vscode中debug程序时,不能显示qt类的值,只显示地址值,参考了网上使用qt.natvis.xml的方法,将该文件防止在docker容器内,和防止在win机器上,均不起作用。有没有人处理过该问题,望解答。

操作环境、软件版本等信息

vscode版本:1.76.1
qt版本:5.12.12

尝试过的解决方法

https://blog.csdn.net/qq_41539778/article/details/102926811

https://blog.csdn.net/weixin_49065061/article/details/129424255

我想要达到的结果

想在使用vscode调试是,能够显示qt类的值,而不是地址

  • 写回答

6条回答 默认 最新

  • Leodong. 2023-04-04 14:26
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    您可以尝试按照以下步骤来解决您的问题:
    1、在您的 C++ 项目中添加一个名为 qt.natvis.xml 的文件,并将其放在项目的根目录中。
    2、将以下内容添加到 qt.natvis.xml 文件中:

    <?xml version="1.0" encoding="utf-8"?>
    <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
      <Type Name="QListData">
        <DisplayString>{{ size=%size%, capacity=%alloc%</DisplayString>
        <Expand>
          <ArrayItems>
            <Size>size</Size>
            <ValuePointer>array</ValuePointer>
          </ArrayItems>
        </Expand>
      </Type>
      <Type Name="QList&lt;*&gt;">
        <DisplayString>{...}</DisplayString>
        <Expand>
          <Item Name="[size]">size</Item>
          <Item Name="[capacity]">d-&gt;alloc</Item>
          <ArrayItems>
            <Size>size</Size>
            <ValuePointer>d-&gt;array</ValuePointer>
          </ArrayItems>
        </Expand>
      </Type>
      <Type Name="QByteArray">
        <DisplayString>{{ size=%size%, capacity=%alloc%</DisplayString>
        <Expand>
          <ArrayItems>
            <Size>size</Size>
            <ValuePointer>data</ValuePointer>
          </ArrayItems>
        </Expand>
      </Type>
      <Type Name="QString">
        <DisplayString>{%s, length=%length%}</DisplayString>
        <StringView>
          <StringView>data->data(),static_cast&lt;int&gt;(length)</StringView>
          <Length>length</Length>
        </StringView>
      </Type>
      <Type Name="QVector&lt;*&gt;">
        <DisplayString>{...}</DisplayString>
        <Expand>
          <Item Name="[size]">size</Item>
          <Item Name="[capacity]">d-&gt;alloc</Item>
          <ArrayItems>
            <Size>size</Size>
            <ValuePointer>d-&gt;array</ValuePointer>
          </ArrayItems>
        </Expand>
      </Type>
    </AutoVisualizer>
    

    3、在 VS Code 中打开您的项目,然后单击左侧的调试按钮,选择“添加配置”。
    4、在弹出的菜单中选择“C++”。
    5、选择您的项目中的一个 C++ 文件,然后单击“创建 launch.json 文件”。
    6、打开 launch.json 文件,并将以下代码添加到该文件中:

    "visualizerFile": "${workspaceFolder}/qt.natvis.xml"
    

    7、开始调试您的程序,可以看到 Qt 类的值现在已经被正确地显示了。

    这个方法适用于 Visual Studio 2017 及更高版本,VS Code 也支持类似的自定义数据可视化配置,步骤大致相同。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 系统已结题 4月12日
  • 创建了问题 4月4日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。