WSL2中通过GDB启动QApplication无法连接XServer问题求助
WSL2升级后Qt Creator调试器启动QApplication崩溃问题
将Ubuntu 20.04的WSL镜像从WSL1升级到WSL2后,Qt Creator基于GDB封装的调试器出现异常:程序运行到QApplication()构造函数时崩溃。
触发崩溃的基础示例代码
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
问题细节与已排查内容
- 堆栈跟踪显示崩溃发生在Qt平台集成创建阶段
- 正常运行调试构建版本无异常,仅在调试器启动程序时崩溃
- 将GDB附加到已运行进程可正常通过QApplication构造函数,但直接用GDB启动应用时,会出现无法连接X服务器localhost:0、无法加载xcb平台插件的错误
- 已基于
/etc/resolv.conf正确导出DISPLAY变量,可正常启动Qt Creator,但GDB无法正常使用该变量 - 设置
QT_QPA_PLATFORM=offscreen后,GDB可通过QApplication创建,但应用窗口不会显示 - 设置
LIBGL_ALWAYS_INDIRECT无帮助,且X410官方不建议设置该变量 - 已安装
libxcb-cursor0、libxcb-xinerama0包,且确认xcb平台插件存在 - 已安装
libqt5core5a-dbgsym包,但未获取到有效调试符号,寻求无需重新编译Qt即可启用调试符号的方法
环境信息
- Qt版本:5.12.8
- GCC版本:9.2 (Ubuntu 9.2-0ubuntu1~20.04.1)
- Ubuntu:20.04
- Qt Creator:4.11.0
- X410:3.3.1
内容的提问来源于stack exchange,提问作者Tyler Shellberg
相关产品推荐
相关产品推荐

