该回答引用ChatGPT
这个问题可能与Qt的调试信息格式有关。Qt在编译时可以生成不同格式的调试信息,而默认情况下是使用gdb格式的调试信息。但是,VSCode的调试器使用的是Microsoft的调试引擎,需要使用MSVC格式的调试信息。
因此,您可以尝试在编译Qt时使用MSVC格式的调试信息。具体来说,您可以按照以下步骤进行:
1. 在Qt安装目录下找到mkspecs目录,复制一份msvc-desktop的目录,并重命名为vscode-desktop。
2. 打开vscode-desktop目录下的qmake.conf文件,将其中的QMAKE_CFLAGS_DEBUG和QMAKE_CXXFLAGS_DEBUG分别设置为:
QMAKE_CFLAGS_DEBUG += /Z7
QMAKE_CXXFLAGS_DEBUG += /Z7
这样就可以生成MSVC格式的调试信息了。
3. 重新编译您的Qt项目。
4. 在VSCode的launch.json文件中,将“program”属性设置为您的可执行文件路径,将“MIMode”属性设置为“lldb”。
5. 在VSCode的settings.json文件中,添加以下配置:
"lldb.formats": [
{
"name": "Qt",
"type": "^Q[A-Z][a-zA-Z0-9]*$",
"children": [
{
"name": "pointer",
"format": "Hex: ${var%{unsigned long long}x}"
},
{
"name": "QtCore.QRectF",
"children": [
{
"name": "x",
"format": "${var.x()}f"
},
{
"name": "y",
"format": "${var.y()}f"
},
{
"name": "width",
"format": "${var.width()}f"
},
{
"name": "height",
"format": "${var.height()}f"
}
]
}
]
}
]
这个配置将会帮助lldb正确地解析Qt的调试信息。
6. 重新启动VSCode并调试您的应用程序。现在,您应该能够看到Qt类的值而不是地址了。
需要注意的是:以上方法只适用于Windows环境下的Qt项目调试。如果您的环境不同,可能需要做一些调整。