#728619 libgl1-mesa-dri-dbg: Can't use i386 r600_dri.so symbols on an amd64 system

#728619#5
Date:
2013-11-03 15:47:28 UTC
From:
To:
Hello,

It's possible I'm overlooking something very silly, so please excuse me if that
is the case.

I'm a game porter trying to get Painkiller Hell & Damnation to run decently on
Linux. I have a 100%-reproducible crash in the game's OpenGL renderer with a
callstack ending in r600_dri.so. I'm pretty sure the root cause is the game's
renderer doing something wrong, not the driver, but being able to see what's
going on in the driver would make things that much easier.

However, I can't seem to make use of the debug symbols package. I have it
installed, but the callstacks still show bare addresses in gdb, not symbols. I
wasn't able to get them working even with LD_LIBRARY_PATH incantations,
symlinking the actual r600_dri.so with the debug one (this causes a segfault in
ldd at program start), nor trying to load it as symbol file from gdb (it says
no applicable symbols found).

What am I doing wrong? How can I get the debug symbols right?

Cheers,

Leszek

#728619#10
Date:
2013-11-06 15:19:25 UTC
From:
To:
If you want to debug a crash in 32bit libGL, you should just need to
install the i386 version of libgl1-mesa-dri-dbg and libgl1-mesa-glx-dbg.

Cheers,
Julien

#728619#15
Date:
2013-11-06 19:50:11 UTC
From:
To:
inequation@spearhead:~$ LC_ALL=C aptitude show libgl1-mesa-dri-dbg:i386
Package: libgl1-mesa-dri-dbg
New: yes
State: installed

It still won't work. Otherwise I wouldn't have bothered you with this.

Is there anything more I can check?

Regards,

Leszek

#728619#20
Date:
2013-11-07 18:04:36 UTC
From:
To:
It just occured to me that maybe I wasn't clear enough. I'm not trying
to debug libGL, but the DRI modules. Here's an example backtrace (for
i965, where a similar bug occurs):

[0173.57] Log: [ 1]  ./PKHDGame() [0x9250e92]
[0173.57] Log: [ 2]  [0xf774d400]
[0173.57] Log: [ 3]  /lib/i386-linux-gnu/libc.so.6(+0x134cdb) [0xf72e2cdb]
[0173.57] Log: [ 4]  /usr/lib/i386-linux-gnu/dri/i965_dri.so(+0x7d037)
[0xf5387037]
[0173.57] Log: [ 5]  /usr/lib/i386-linux-gnu/dri/i965_dri.so(+0xb01df)
[0xf53ba1df]
[0173.57] Log: [ 6]  /usr/lib/i386-linux-gnu/dri/i965_dri.so(+0x45846)
[0xf534f846]
[0173.57] Log: [ 7]  /usr/lib/i386-linux-gnu/dri/i965_dri.so(+0x7c3a7)
[0xf53863a7]
[0173.57] Log: [ 8]
/usr/lib/i386-linux-gnu/libdricore9.2.1.so.1(_mesa_glsl_link_shader+0x11e)
[0xf51451fe]
[0173.57] Log: [ 9]
/usr/lib/i386-linux-gnu/libdricore9.2.1.so.1(+0xe20ff) [0xf4fe90ff]
[0173.57] Log: [10]  ./PKHDGame() [0x91ce48e]
[0173.57] Log: [11]  ./PKHDGame() [0x924c82e]
[0173.57] Log: [12]  ./PKHDGame() [0x924c71a]
[0173.57] Log: [13]  /lib/i386-linux-gnu/libpthread.so.0(+0x6d78) [0xf76dbd78]
[0173.57] Log: [14]  /lib/i386-linux-gnu/libc.so.6(clone+0x5e) [0xf72a001e]

The top 3 frames on the stack are signal handling routines; below them
you can see i965_dri.so for which my gdb can't seem to get the
symbols.

Leszek

2013/11/6 Leszek Godlewski <lg@inequation.org>:

#728619#25
Date:
2013-11-11 17:25:42 UTC
From:
To:
The above trace is not from gdb though?  Please include the exact output
you're getting from gdb.

Cheers,
Julien