我使用各种 Vagrant 盒子(VirtualBox 后端)建立了一个小型 SRE 实验室。我通常在 Debian 或 Archlinux 机器上工作,并通过远程调试连接到 Windows 机器。在我的 Linux 机器上,X11 转发已启用并且正常工作。当我尝试rizin
从 AppImage 或解压后运行 Cutter(官方GUI)时,我收到以下错误:
The X11 connection broke: No error (code 0)
X connection to localhost:10.0 broken (explicit kill or server shutdown).
我以前从未见过这样的东西,而且我无法用任何其他应用程序(无论是否是 AppImage)来重现它。 Cutter 在本地运行良好,其他应用程序通过盒子中的 X11 转发运行良好,只有这一个在 Debian 和 Arch 盒子上都出现错误。
任何从哪里开始调试的想法都是值得赞赏的:)
答案1
我终于能够解决这个问题了。@爱德华多·特拉帕尼指针有qt
很大帮助。它引导我通过QT_DEBUG_PLUGINGS=1
环境变量启用 Qt 插件调试。从那里我注意到加载某种 OpenGL 插件后会发生错误:
Got keys from plugin meta data ("xcb_egl")
QFactoryLoader::QFactoryLoader() looking at "/tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so"
Found metadata in lib /tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5",
"MetaData": {
"Keys": [
"xcb_glx"
]
},
"archreq": 0,
"className": "QXcbGlxIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("xcb_glx")
QFactoryLoader::QFactoryLoader() checking directory path "/tmp/.mount_CutterCuz84C/usr/bin/xcbglintegrations" ...
loaded library "/tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so"
The X11 connection broke: No error (code 0)
X connection to localhost:10.0 broken (explicit kill or server shutdown).
经过一番研究后,最终启用了间接 OpenGL 渲染:
export LIBGL_ALWAYS_INDIRECT=1
欲了解更多详情,请参阅这里。