每次我使用来自 OpenGL(libGDX 框架)的图形一步一步地(在我的 IDE 上)调试 Java 游戏时,Gnome 3 都会冻结游戏窗口并将我的鼠标事件锁定在该窗口之外,由于无响应的窗口(正在调试的游戏),要求强制退出或等待。
我如何在以后忽略该消息(或延迟它)?我无法使用该打开的对话框调试任何内容,即使我按等待(大约 2 秒后对话框再次出现)?
注意:CPU 使用率为 1%。
答案1
此错误已修复。Ubuntu 18 的反向移植版本已于 2019-6-6 发布,名为 gnome-shell 3.28.4。请参阅如何禁用“窗口无响应”对话框
根本原因是用于交互式程序的 gnome API。一旦激活此 API,gnome 就会期望应用程序收集事件并及时响应,并且应用程序会发送某种心跳来证明它正在响应。当应用程序停止发送心跳时,gnome 会调出此对话框。
答案2
另一件需要考虑的事情是,在单步执行代码时,如果您到达了应用程序需要用户输入的点:键盘输入、鼠标移动等。如果应用程序现在被锁定以等待该输入,它将卡在那里,但您正在调试器中,单步执行到下一行代码。因此,您的应用程序永远不会到达那里,因为它在等待,并且调试无法继续,因为它在等待应用程序完成其正在做的事情。
这叫做致命的拥抱