It's useful to have a working X server if a client holds a grab when it triggers a debugger breakpoint
David Campbell
david at pastornet.net.au
Mon May 25 17:00:47 PDT 2009
Hi,
Many/most GUI toolkits implement pop up menus using grabs. This can
cause major desktop lockups when debugging GUI applications, because
hitting breakpoints in pop up menu callback code will occur while a grab
is active.
Reaching a breakpoint while a grab is active indefinitely locks up the X
server, leaving a standalone desktop user the only option but to power
down and suffer potential data loss.
Up until recently, the AllowDeactivateGrabs functionality could be
configured such that the grabs could be deactivated with certain
keystrokes, but this functionality has now been removed from the X
server in the following change
http://cgit.freedesktop.org/xorg/xserver/commit/?id=5e43cd28692bc05cac80f38b47104a26c0524385
Given the absence of the above functionality, where grabs are used by
underlying GUI libraries, it is impossible to debug popup menu callback
code where the debugger and the application are running in the same X
server due to grab lockout. This appears to be a critical issue.
I draw your attention to consideration of this matter....is there a way
that the X server could be enhanced to recognise processes that have
been suspended and automatically cancel their grabs and avoid this
problem? Should the AllowDeactivateGrabs functionality be restored in
the interim while a full solution is thought through?
Others have raised these issues:
http://bugs.freedesktop.org/show_bug.cgi?id=21652
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/338489
Thanks,
-- Dave Campbell
More information about the xorg
mailing list