Qt::Popup window in debugger seizes up whole windowing system
-
@iynaur
Thank you! Will try tomorrow, if I remember....Though there are comments to the link you reference:
I think I have followed this tutorial step by step, but I am still missing the Wayland option in the login menuâŚ
Same here. I followed the steps but the only options I see are âUbuntuâ and âGnome Classicâ.
Note! Do not forget that the gpu drivers (nvidia, amd or intel) should allow the use of Wayland. If you have proprietary nvidia drivers uninstall them and install nouveau drivers.
(Hopefully the last one is not relevant to me.)
-
@iynaur , or @ anyone else who knows!
Well, I followed those instructions. Wayland was already enabled. I logged in using Wayland on Ubuntu. (Seems fine, all looked much the same as when I use X.) Did the./yourapp -platform wayland
. I get warningWarning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
so did
export QT_QPA_PLATFORM=wayland
and ran again. Get same warning, it didn't make any difference. I getqt.qpa.plugin: Could not find the Qt platform plugin "wayland" in "" This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
So I did what I tell everyone else:
export QT_DEBUG_PLUGINS=1
.It reports finding the
metadata
for each of the mentioned available platform plugins. Final line:QFactoryLoader::QFactoryLoader() checking directory path "/home/jon/AtH/debug/platforms" ... qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
Since
wayland
is not listed among theAvailable platform plugins
I presume this means I am supposed to have/install something to make Qt app run under Wayland? I do not compile Qt, I use the version (5.12) which is supplied with Ubuntu 20.04.So, what am I supposed to do now? Am I supposed to get some Qt support for Wayland from somewhere?
Meanwhile I will do some further Googling....
UPDATE
I come across https://wiki.archlinux.org/index.php/wayland#Qt for Arch stating:To enable Wayland support in Qt 5 or 6, install the qt5-wayland or qt6-wayland package, respectively.
So I get I need to install something. But under Ubuntu
apt-get install qt5-wayland
gets meE: Unable to locate package qt5-wayland
, so now what...?UPDATE2
OK, so I discover under Ubuntu it has to beapt-get install qtwayland5
Sigh :)
OK, so now my app does run under Wayland! Yippee!!
I will soon try debugging now with
Qt::Popup
and see if I no longer "hang"!Meanwhile, I don't much like the way it looks under Wayland display manager, compared to GNOME :( For one thing, the fonts look bigger, it looks horrible compared to xcb. Maybe I need to configure Wayland somewhere to alter.....
OK, I agree debugging no longer "freezes whole machine" with code
Qt::Popup
, which is great. But the Wayland layout/look/fonts are so horrible I cannot use this unless I can configure something somehow. Which I'm not getting from Googling? I don't even know that under Wayland app is using the default Fusion style I had under X11? Anyone know what to do to "configure" for Wayland, or is this not possible? Thanks! -
@iynaur
Thanks, yes. I have to switch to that "log onto Wayland Ubuntu" to be able to use it all (I think so, anyway?), I think you're right that you can still run xcb mode for there though, but I don't much like logging in that way. I will keep it for emergency debugging. Shame, but better than nothing! -
I know this is an old post, but some additional info:
This not only seizes up the window manager, but actually seems to have the effect of eventually seizing up the whole kernel - power-off / power-on.
I encountered this problem a few weeks ago - it is indeed easily reproducible.
System is Fedora 39, running KDE / X.
Once the debugger breaks, KDE is seized hard, as described in earlier posts. My plan was to use Ctrl+Alt+F3 to get a console login prompt from where I was planning to attempt to
killall -9 gdb
. I was actually able to login if I did it quickly. The echo of keystrokes was very laggy, and by the time I got a few keystrokes entered to kill the debugger, the entire kernel seems seized. Monitors go to sleep and can't ping from another computer. This seems particularly surprising as all the processes involved are running in user space, and the text terminal does not have any window manager involved.Hopefully this might provide a clue to anyone working on a solution.
Unfortunately, this lock-up is so destructive that I gave up trying to debug Qt::Popup widgets, and am just removing that flag while debugging - or of course good old
printf
/qDebug
. -