Debugging X errors?

Andreas Mohr andi at rhlx01.fht-esslingen.de
Tue Mar 28 05:53:34 CST 2006


Hi,

On Tue, Mar 28, 2006 at 03:39:43AM -0800, Dan Kegel wrote:
> OK, I've had it.  The X errors I'm running into are keeping
> me from getting work done.  They might be due to
> bugs in my X server (ubuntu 05.10), but while I wait
> for the next release of ubuntu, maybe I could try
> to track them down anyway.
Good idea ;)

> It looks like the procedure for diagnosing X errors such as
> 
> X Error of failed request:  BadAtom (invalid Atom parameter)
>   Major opcode of failed request:  17 (X_GetAtomName)
>   Atom id in failed request:  0x0
>   Serial number of failed request:  468
>   Current serial number in output stream:  470
> in Wine is to do
>   WINEDEBUG=+synchronous
>   export WINEDEBUG
> and then use winedbg to run the apps, and get a backtrace
> when the error occurs.  I'll try that.

Random semi-helpful notes I've been writing down about that:
----------
SOLUTION:

  gdb: b _XError
        b wxXErrorHandler

  How do I trace the cause of an X11 error such as BadMatch?

   When a fatal X11 error occurs, the application quits with no stack trace.
   To find out where the problem is, put a breakpoint on g_log (b g_log in
   gdb).


Unexpected async reply" is commonly due to a multi-threaded app with
Motif/Xlib calls from more than 1 thread; or to Motif/Xlib calls from
a signal handler.

http://www.rahul.net/kenton/perrors.html

try:
XSynchronize(display, True);
for debugging


Maybe can happen if app is overwriting Xlib-owned memory...
----------


Andreas Mohr



More information about the wine-devel mailing list