Comment 10 for bug 60288

Revision history for this message
In , C Michal (michal-physics) wrote :

Is there a trick to starting the X server under gdb?

with:
gdb /usr/bin/X
gdb> run -ignoreABI

The server says:
(==) Using config file: "/etc/X11/xorg.conf"
[tcsetpgrp failed in terminal_inferior: Operation not permitted]
(WW) module ABI major version (0) doesn't match the server's version (1)
(WW) I810: No matching Device section for instance (BusID PCI:0:2:1) found
PIPECONF (1) BEFORE 0x80000000
DSPCNTR (1) BEFORE 0x49000000
PIPECONF (1) AFTER 0x80000000
DSPCNTR (1) AFTER 0xc9000000
I830InitVideo
I830SetupImageVideoOverlay
I830ResetVideo: base: 0xa78f6000, offset: 0xfffa000, obase: 0xb78f0000
Original gamma: 0x80808 0x101010 0x202020 0x404040 0x808080 0xc0c0c0
Bounded gamma: 0x80808 0x101010 0x202020 0x404040 0x808080 0xc0c0c0
I830SetupImageVideoOverlay

and then locks up. The tcsetpgrp line seems to be new.

I was able to attach the debugger after starting up X. When started like this
(directly starting /usr/bin/X), the server starts up fine and stays up. But
when started with startx (configured in gentoo to start a gnome session), it
crashes after a few seconds.

(Compiled with -O2 -g -march=pentium-m)

This brings to mind another bug I didn't file here because it didn't seem to be
a server problem - but it may be a piece of the puzzle:

If I enable xinerama, the screen resolutions seem to get reported all wrong
somewhere - ie, I can't move windows to some parts of the combined screen (lower
and farthest right). But that also only happens if the server is started from
startx to start a gnome session. If its started from gdm or with /usr/bin/X it
seems to behave properly.

A difference though is that if AIGLX is enabled with two heads, non xinerama -
it crashes from startx or from gdm, but not if started with /usr/bin/X.

Back to the issue at hand. With AIGLX enabled without xinerama, the server now
spits out:

Backtrace:
0: X(xf86SigHandler+0x84) [0x80b85e8]
1: [0xffffe420]
2: /usr/lib/xorg/modules/extension/libglx.so [0xb7c65beb]
3: /usr/lib/xorg/modules/extensions/libglx.so(__glXleavServer+0x22) [0xb7c41d52]
4: /usr/lib/xorg/modules/extensions/libglx.so [0xb7c4236e]
5: X(Dispatch+0x19b) [0x8086c0b]
6: X(main+0x488) [0x806e608]
7: /lib/libc.so.6(__libc_start_main+0xd8) [0xb7ce7878]
8: X(FontFileCompleteXLFD+0xad) [0x806d931]

and gdb says:

Program received signal SIGSEGV, Segmentation fault.
0xb7efa4bd in DRIDoBlockHandler (screenNum=1, blockData=0x0, pTimeout=0x0,
    pReadmask=0x0) at dri.c:1399
1399 dri.c: No such file or directory.
        in dri.c
(gdb) bt
#0 0xb7efa4bd in DRIDoBlockHandler (screenNum=1, blockData=0x0, pTimeout=0x0,
    pReadmask=0x0) at dri.c:1399
#1 0xb7c0bbeb in __glXDRIleaveServer () at glxdri.c:146
#2 0xb7be7d52 in __glXleaveServer () at glxext.c:447
#3 0xb7be836e in __glXDispatch (client=0x8507210) at glxext.c:520
#4 0x08086c0b in Dispatch () at dispatch.c:459
#5 0x0806e608 in main (argc=7, argv=0xbfe2d004, envp=0x0) at main.c:447