@Bryce: I've found a way to make X crash almost systematically, so I am in a position to get a full backtrace. However, I followed https://wiki.ubuntu.com/X/Backtracing and I have missing symbols at the top of the backtrace, which is no good:
(gdb) backtrace full
#0 0xb13d7aee in ?? () from /usr/lib/dri/r300_dri.so
No symbol table info available.
#1 0xb13d7e21 in _mesa_update_texture () from /usr/lib/dri/r300_dri.so
No symbol table info available.
#2 0xb13c1fb6 in _mesa_update_state_locked () from /usr/lib/dri/r300_dri.so
No symbol table info available.
#3 0xb13c21aa in _mesa_update_state () from /usr/lib/dri/r300_dri.so
No symbol table info available.
#4 0xb1494148 in _mesa_GetIntegerv () from /usr/lib/dri/r300_dri.so
No symbol table info available.
#5 0xb78b3132 in __glXDRIbindTexImage (baseContext=0x9cccd88, buffer=8414,
glxPixmap=0xa421b18) at ../../glx/glxdri.c:406
pRegion = <value optimized out>
pixmap = <value optimized out>
bpp = <value optimized out>
override = <value optimized out>
texname = -1215888936
format = <value optimized out>
type = <value optimized out>
pScreen = (ScreenPtr) 0x9b0d658
__func__ = "__glXDRIbindTexImage"
#6 0xb78a52e8 in __glXDisp_BindTexImageEXT (cl=0x9cb5be0,
pc=0xa66aa05c "\232\020\006") at ../../glx/glxcmds.c:1535
client = (ClientPtr) 0x9cb7818
context = <value optimized out>
pGlxDraw = (__GLXdrawable *) 0x9d63660
drawId = 16780418
error = <value optimized out>
#7 0xb78a41a7 in __glXDisp_VendorPrivate (cl=0x9cb5be0,
pc=0xa66aa05c "\232\020\006") at ../../glx/glxcmds.c:2250
No locals.
#8 0xb78a8d6a in __glXDispatch (client=0x9cb7818) at ../../glx/glxext.c:523
stuff = (xGLXSingleReq *) 0xa66aa05c
opcode = 16 '\020'
cl = (__GLXclientState *) 0x9cb5be0
retval = 1
#9 0x0808d5af in Dispatch () at ../../dix/dispatch.c:437
result = <value optimized out>
client = (ClientPtr) 0x9cb7818
nready = 0
start_tick = 29600
#10 0x0807231d in main (argc=10, argv=0xbfa54f44, envp=0x9d84bc0)
at ../../dix/main.c:397
i = <value optimized out> alwaysCheckForInput = {0, 1}
If I understood the guide correctly, I only had to install xserver-xorg-core-dbg, libgl1-mesa-dri-dbg and xserver-xorg-video-ati-dbg, after which (I assume) my next X session would use the dbg binaries and libraries. Or do I need to do something else? There is a r300_dri.so in libgl1-mesa-dri-dbg, so there's something I must be doing wrong...
@Bryce: I've found a way to make X crash almost systematically, so I am in a position to get a full backtrace. However, I followed https:/ /wiki.ubuntu. com/X/Backtraci ng and I have missing symbols at the top of the backtrace, which is no good:
(gdb) backtrace full dri/r300_ dri.so texture () from /usr/lib/ dri/r300_ dri.so state_locked () from /usr/lib/ dri/r300_ dri.so dri/r300_ dri.so dri/r300_ dri.so Image (baseContext= 0x9cccd88, buffer=8414, 0xa421b18) at ../../glx/ glxdri. c:406 xImage" BindTexImageEXT (cl=0x9cb5be0, glxcmds. c:1535 VendorPrivate (cl=0x9cb5be0, glxcmds. c:2250 glxext. c:523 dispatch. c:437 main.c: 397
alwaysCheckFor Input = {0, 1}
#0 0xb13d7aee in ?? () from /usr/lib/
No symbol table info available.
#1 0xb13d7e21 in _mesa_update_
No symbol table info available.
#2 0xb13c1fb6 in _mesa_update_
No symbol table info available.
#3 0xb13c21aa in _mesa_update_state () from /usr/lib/
No symbol table info available.
#4 0xb1494148 in _mesa_GetIntegerv () from /usr/lib/
No symbol table info available.
#5 0xb78b3132 in __glXDRIbindTex
glxPixmap=
pRegion = <value optimized out>
pixmap = <value optimized out>
bpp = <value optimized out>
override = <value optimized out>
texname = -1215888936
format = <value optimized out>
type = <value optimized out>
pScreen = (ScreenPtr) 0x9b0d658
__func__ = "__glXDRIbindTe
#6 0xb78a52e8 in __glXDisp_
pc=0xa66aa05c "\232\020\006") at ../../glx/
client = (ClientPtr) 0x9cb7818
context = <value optimized out>
pGlxDraw = (__GLXdrawable *) 0x9d63660
drawId = 16780418
error = <value optimized out>
#7 0xb78a41a7 in __glXDisp_
pc=0xa66aa05c "\232\020\006") at ../../glx/
No locals.
#8 0xb78a8d6a in __glXDispatch (client=0x9cb7818) at ../../glx/
stuff = (xGLXSingleReq *) 0xa66aa05c
opcode = 16 '\020'
cl = (__GLXclientState *) 0x9cb5be0
retval = 1
#9 0x0808d5af in Dispatch () at ../../dix/
result = <value optimized out>
client = (ClientPtr) 0x9cb7818
nready = 0
start_tick = 29600
#10 0x0807231d in main (argc=10, argv=0xbfa54f44, envp=0x9d84bc0)
at ../../dix/
i = <value optimized out>
If I understood the guide correctly, I only had to install xserver- xorg-core- dbg, libgl1-mesa-dri-dbg and xserver- xorg-video- ati-dbg, after which (I assume) my next X session would use the dbg binaries and libraries. Or do I need to do something else? There is a r300_dri.so in libgl1- mesa-dri- dbg, so there's something I must be doing wrong...