Bug#535326: Installed debugging symbols are not seen by gdb

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Bug#535326: Installed debugging symbols are not seen by gdb

bicave (Bugzilla)
Package: python-sip4-dbg
Version: 4.8.1-1
Severity: important

Hello,

I was trying to get a backtrace from system-config-printer-kde today, and for this
reason, I installed the python-sip4-dbg package. However, I noticed that even though
this package was installed, I still got the "??" lines in the backtrace:

=== 8< ===
(gdb) file /usr/bin/python
Reading symbols from /usr/bin/python...Reading symbols from /usr/lib/debug/usr/bin/python2.5...done.
done.
(gdb) run /usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py
Starting program: /usr/bin/python /usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py
[Thread debugging using libthread_db enabled]
[New Thread 0xb7de68d0 (LWP 2340)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7de68d0 (LWP 2340)]
0xb7e5dad3 in strlen () from /lib/i686/cmov/libc.so.6
(gdb) bt
#0  0xb7e5dad3 in strlen () from /lib/i686/cmov/libc.so.6
#1  0x0809886b in PyString_FromFormatV (format=0xb7a59274 "the sip module implements API v%d.0 but the %s module requires API v%d.%d", vargs=0xbfef6978 "\005") at ../Objects/stringobject.c:211
#2  0x080dce3b in PyErr_Format (exception=0x8144c40, format=0xb7a59274 "the sip module implements API v%d.0 but the %s module requires API v%d.%d") at ../Python/errors.c:522
#3  0xb7a56442 in ?? () from /usr/lib/pymodules/python2.5/sip.so
#4  0x08144c40 in _PyExc_EOFError ()
#5  0xb7a59274 in ?? () from /usr/lib/pymodules/python2.5/sip.so
#6  0x00000005 in ?? ()
#7  0x6bc2d458 in ?? ()
#8  0x00000003 in ?? ()
#9  0x00000008 in ?? ()
#10 0xbfef69a8 in ?? ()
#11 0x080894f1 in PyDict_GetItemString (v=0xb5e1d3c0, key=0x3 <Address 0x3 out of bounds>) at ../Objects/dictobject.c:2173
#12 0xb5d34647 in initkdecore () from /usr/lib/pymodules/python2.5/PyKDE4/kdecore.so
#13 0x080e6597 in _PyImport_LoadDynamicModule (name=0xbfef7ae7 "PyKDE4.kdecore", pathname=0xbfef6a73 "/usr/lib/pymodules/python2.5/PyKDE4/kdecore.so", fp=0x8de3e48) at ../Python/importdl.c:53
#14 0x080e44f0 in load_module (name=0xbfef7ae7 "PyKDE4.kdecore", fp=0x73, buf=0xbfef6a73 "/usr/lib/pymodules/python2.5/PyKDE4/kdecore.so", type=3, loader=0x0) at ../Python/import.c:1758
#15 0x080e4cd7 in import_submodule (mod=0xb7da6fa4, subname=0xbfef7aee "kdecore", fullname=0xbfef7ae7 "PyKDE4.kdecore") at ../Python/import.c:2400
#16 0x080e4f6a in load_next (mod=0xb7da6fa4, altmod=0xb7da6fa4, p_name=<value optimized out>, buf=0xbfef7ae7 "PyKDE4.kdecore", p_buflen=0xbfef8ae8) at ../Python/import.c:2220
#17 0x080e5585 in import_module_level (name=0x0, globals=<value optimized out>, locals=<value optimized out>, fromlist=0xb7dd052c, level=-1) at ../Python/import.c:2008
#18 0x080e5892 in PyImport_ImportModuleLevel (name=0xb7d7ead4 "PyKDE4.kdecore", globals=0xb7dbfacc, locals=0xb7dbfacc, fromlist=0xb7dd052c, level=-1) at ../Python/import.c:2072
#19 0x080c8424 in builtin___import__ (self=0x0, args=0xb7d7e2d4, kwds=0x0) at ../Python/bltinmodule.c:47
#20 0x0805d4b7 in PyObject_Call (func=0x0, arg=0xb7d7e2d4, kw=0x0) at ../Objects/abstract.c:1861
#21 0x080c88fc in PyEval_CallObjectWithKeywords (func=0xb7daee6c, arg=0xb7d7e2d4, kw=0x0) at ../Python/ceval.c:3481
#22 0x080cc09e in PyEval_EvalFrameEx (f=0x8c5c72c, throwflag=0) at ../Python/ceval.c:2093
#23 0x080d00c5 in PyEval_EvalCodeEx (co=0xb7d909b0, globals=0xb7dbfacc, locals=0xb7dbfacc, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:2875
#24 0x080d02d7 in PyEval_EvalCode (co=0xb7d909b0, globals=0xb7dbfacc, locals=0xb7dbfacc) at ../Python/ceval.c:514
#25 0x080ed71f in PyRun_FileExFlags (fp=0x8bf4008, filename=0xbfefa1aa "/usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py", start=257, globals=0xb7dbfacc, locals=0xb7dbfacc, closeit=1,
    flags=0xbfef8fa8) at ../Python/pythonrun.c:1273
#26 0x080ed9ea in PyRun_SimpleFileExFlags (fp=0x8bf4008, filename=0xbfefa1aa "/usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py", closeit=1, flags=0xbfef8fa8)
    at ../Python/pythonrun.c:879
#27 0x08059357 in Py_Main (argc=1, argv=0xbfef9074) at ../Modules/main.c:532
#28 0x08058722 in main (argc=Cannot access memory at address 0x0
) at ../Modules/python.c:23
(gdb)
=== >8 ===

After this, I thought, why isn't gdb recognizing the debugging symbols that are already
installed? Then I noticed that gdb was looking for the debugging symbols in
"/usr/lib/pymodules/python2.5/sip.so" for some reason.

After this, I did the following:

=== 8< ===
ln  -s /usr/lib/debug/usr/lib/python2.5/site-packages/sip.so /usr/lib/debug/usr/lib/pymodules/python2.5/sip.so
ldconfig
=== >8 ===

I ran gdb again, and voila, the backtrace is working now:

=== 8< ===
...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7e938d0 (LWP 2563)]
0xb7f0aad3 in strlen () from /lib/i686/cmov/libc.so.6
(gdb) bt
#0  0xb7f0aad3 in strlen () from /lib/i686/cmov/libc.so.6
#1  0x0809886b in PyString_FromFormatV (format=0xb7b06274 "the sip module implements API v%d.0 but the %s module requires API v%d.%d", vargs=0xbfc24938 "\005") at ../Objects/stringobject.c:211
#2  0x080dce3b in PyErr_Format (exception=0x8144c40, format=0xb7b06274 "the sip module implements API v%d.0 but the %s module requires API v%d.%d") at ../Python/errors.c:522
#3  0xb7b03442 in sip_api_export_module (client=0xb5eca3c0, api_major=3, api_minor=8, unused=0x8fa08ac) at /tmp/buildd/sip4-qt3-4.8.1/siplib/siplib.c:1001
#4  0xb5de1647 in initkdecore () from /usr/lib/pymodules/python2.5/PyKDE4/kdecore.so
#5  0x080e6597 in _PyImport_LoadDynamicModule (name=0xbfc25aa7 "PyKDE4.kdecore", pathname=0xbfc24a33 "/usr/lib/pymodules/python2.5/PyKDE4/kdecore.so", fp=0x8e4fe20) at ../Python/importdl.c:53
#6  0x080e44f0 in load_module (name=0xbfc25aa7 "PyKDE4.kdecore", fp=0x73, buf=0xbfc24a33 "/usr/lib/pymodules/python2.5/PyKDE4/kdecore.so", type=3, loader=0x0) at ../Python/import.c:1758
#7  0x080e4cd7 in import_submodule (mod=0xb7e53fa4, subname=0xbfc25aae "kdecore", fullname=0xbfc25aa7 "PyKDE4.kdecore") at ../Python/import.c:2400
#8  0x080e4f6a in load_next (mod=0xb7e53fa4, altmod=0xb7e53fa4, p_name=<value optimized out>, buf=0xbfc25aa7 "PyKDE4.kdecore", p_buflen=0xbfc26aa8) at ../Python/import.c:2220
#9  0x080e5585 in import_module_level (name=0x0, globals=<value optimized out>, locals=<value optimized out>, fromlist=0xb7e7d52c, level=-1) at ../Python/import.c:2008
#10 0x080e5892 in PyImport_ImportModuleLevel (name=0xb7e2bad4 "PyKDE4.kdecore", globals=0xb7e6cacc, locals=0xb7e6cacc, fromlist=0xb7e7d52c, level=-1) at ../Python/import.c:2072
#11 0x080c8424 in builtin___import__ (self=0x0, args=0xb7e2b2d4, kwds=0x0) at ../Python/bltinmodule.c:47
#12 0x0805d4b7 in PyObject_Call (func=0x0, arg=0xb7e2b2d4, kw=0x0) at ../Objects/abstract.c:1861
#13 0x080c88fc in PyEval_CallObjectWithKeywords (func=0xb7e5be6c, arg=0xb7e2b2d4, kw=0x0) at ../Python/ceval.c:3481
#14 0x080cc09e in PyEval_EvalFrameEx (f=0x8cc872c, throwflag=0) at ../Python/ceval.c:2093
#15 0x080d00c5 in PyEval_EvalCodeEx (co=0xb7e3d9b0, globals=0xb7e6cacc, locals=0xb7e6cacc, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:2875
#16 0x080d02d7 in PyEval_EvalCode (co=0xb7e3d9b0, globals=0xb7e6cacc, locals=0xb7e6cacc) at ../Python/ceval.c:514
#17 0x080ed71f in PyRun_FileExFlags (fp=0x8c60008, filename=0xbfc281aa "/usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py", start=257, globals=0xb7e6cacc, locals=0xb7e6cacc, closeit=1,
    flags=0xbfc26f68) at ../Python/pythonrun.c:1273
#18 0x080ed9ea in PyRun_SimpleFileExFlags (fp=0x8c60008, filename=0xbfc281aa "/usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py", closeit=1, flags=0xbfc26f68)
    at ../Python/pythonrun.c:879
#19 0x08059357 in Py_Main (argc=1, argv=0xbfc27034) at ../Modules/main.c:532
#20 0x08058722 in main (argc=Cannot access memory at address 0x0
) at ../Modules/python.c:23
=== >8 ===

I realize that this is not the correct way of fixing the problem; however, I couldn't find
another way.

Judging from the directory structures python-kde4 and kdebindings-dbg packages install their
libraries and debugging symbols, respectively, I see that the problem with python-sip4-dbg
could be that it doesn't install its debugging symbols using the same hierarchy in /usr/lib/debug.
(i.e. If python-sip4 installs a library to /usr/lib/foo, then python-sip4-dbg should install
that library's debugging symbols to /usr/lib/debug/usr/lib/foo, which is not the case
currently.) Furthermore, the same problem might exist with python-qt4-dbg.

I thought that other users might run into the same issue, and because this problem is a
bit tricky to work around, I wanted to file this bug report. Please let me know if there
is a misunderstanding on my part regarding how debugging symbols are installed and used.

Regards,

M. Vefa Bicakci




--
To UNSUBSCRIBE, email to [hidden email]
with a subject of "unsubscribe". Trouble? Contact [hidden email]