I discovered today that I was getting bad addresses for a simple
systemtap probe, process("/bin/env").function("main"). I tracked it
down to getting the module bias from dwfl_module_detdwarf, which AIUI
should always be zero for ET_EXEC. When this file is prelinked, we're
getting a non-zero bias.
This is a regression from 0.149, apparently due to the address_sync
logic added for the i386 REL->RELA fix. I'm on x86_64 this time, and
that /bin/env is from coreutils-8.5-7.fc14.x86_64. Jakub said that the
PT_LOAD heuristic should work fine for shared libraries, but suggested
for ET_EXEC that it might work better to compute the bias from
non-movable sections, or to parse the .gnu.prelink_undo section.
I've attached readelf -WlS for prelinked and not, and for the .debug. I
also uploaded those along with the actual binaries here: