Red Hat Bugzilla – Bug 167628
using prelink prevents valgrind from loading line numbers from stabs.
Last modified: 2007-11-30 17:07:20 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050822 Firefox/1.0.6 (Debian package 1.0.6-3)
Description of problem:
When using valgrind to detect errors in library code valgrind is able to extract less information from shared library's that have been prelinked. In particular some of the N_SLINE entries in the library are changed erronously by prelinking which means valgrind can no longer report memory accesses by line number but instead reports them by library name.
For some (unknown) reason this only seems to happen when using our (www.quadrics.com) libarary's, I believe this is to do with the compile flags used in our releases and the length of functions that we use.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. prelink -a
2. valgrind tping
Actual Results: You see errors listed my shared library name.
Expected Results: You see errors listed by filename/line number.
You need a copy of our software to verify this as I've not found any default library's that can provoke it.
Created attachment 118504 [details]
Patch that fixes the problem
This patch fixes the problem for me and I haven't seen any side effects
although I'm not a stabs expert.
Fix (slightly different) has been included in rawhide prelink.
"For some (unknown) reason this only seems to happen when using our..."
That reason is pretty clear, almost nobody uses Stabs these days, Dwarf3 is
clearly superior and on some RHEL architectures the only one supported.
Plus, all the libraries/binaries in the distro as well as packages built using
rpm by default have debugging info stripped into separate files (*-debuginfo*
BTW, N_SLINE is absolute on some targets and relative on others, which is
what lead to the "I'm not 100% sure about the following 3." comment.
But it seems to be always relative on ELF Linux targets except Alpha (and on
Alpha I think stabs are never used).
If you wish this fix to be backported to RHEL4 U3+, you need to request that
through your support contact, as there are no other prelink changes planned
for RHEL4 U3 ATM.