Xserver and gdb

Jacek Popławski jpopl at interia.pl
Sat Jan 28 07:26:34 PST 2006


Hello.

I am programmer, I know how to use gdb, I have no experience with
debugging or programming X, I've read "DebuggingTheXserver" in wiki.

After each X crash/lock I go to another computer, use ssh to connect, then "gdb
/usr/bin/X pid", and then store backtrace into the file. I can continue process
(with "c"), but server doesn't respond to mouse/keyboard input.

I've also tried to use gdb on non-crashed X, and in that case after "c" server
is working just as before.

I've tried many combinations of driver versions, often I use Mesa CVS
and drm CVS, now I just have installed xorg7 from binary packages
(without full debugging symbols) and drm from stable kernel. 

I removed all AGP options and Composite from xorg.conf as people on irc
suggested, EXA is still enabled.

The point is, that gdb backtrace still looks similiar, and I am just curious is
it usefull at all, or is it plain bad? 

Do I understand correctly that X are not multithreaded? I understand that
Xserver is different thread that OpenGL application. But if X are
single-thread, that gdb backtrace must be good one (assuming symbols are good).
Am I completly wrong?

Or it is just some kind of deadlock, and Xserver is working, just input and
output are waiting for something? 

Anyway, last crash backtrace is:

#0  0xffffe410 in ?? ()
#1  0xbf8d9998 in ?? ()
#2  0x00000000 in ?? ()
#3  0x00006444 in ?? ()
#4  0xb7e51e69 in ioctl () from /lib/tls/libc.so.6
#5  0x080e6530 in xf86ioctl ()
#6  0xb7a11a92 in drmCommandNone () from /usr/lib/xorg/modules/linux/libdrm.so
#7  0xb79d0e1a in RADEONWaitForIdleCP (pScrn=0x82139e8)
    at radeon_commonfuncs.c:137
#8  0xb79f7c0a in RADEONSyncCP (pScreen=0xfffffff0, marker=0)
    at radeon_exa_funcs.c:64
#9  0xb782b340 in exaWaitSync () from /usr/lib/xorg/modules/libexa.so
#10 0xb782bbfc in exaPrepareAccess () from /usr/lib/xorg/modules/libexa.so
#11 0xb782aa35 in ExaCheckPolylines () from /usr/lib/xorg/modules/libexa.so
#12 0x081549be in DamageExtensionInit ()
#13 0x0808492e in ProcPolyLine ()
#14 0x08089389 in Dispatch ()
#15 0x0806fcc6 in main ()

Should I:

- recompile X/Mesa/drm with debugging symbols because important stuff is "??"
or symbols are wrong?

- submit such backtraces as bug?

- fix something obvious?

-- 
Free Software - find interesting programs and change them
NetHack - meet interesting creatures, kill them and eat their bodies
Usenet - meet interesting people from all over the world and flame them
Decopter - unrealistic helicopter simulator, get it from http://decopter.sf.net



More information about the xorg mailing list