|
From: Ashley P. <as...@qu...> - 2005-08-25 16:37:49
|
> Another odd thing, between the two runs a lot of the pointers values > changed by a number of pages, almost as if the library's were being > loaded in a different order? This is key, it turns out I've been fooled by the RHEL4 prelinking/address space randomisation code again. Although the library's are the "same" to the extent that they come from the same rpm and the rpm passes a verify test the installed ones have been noodled in some way (not simply stripped). I was running the prun command on the head node (rh 7.3) which was then forking valgrind on a compute node (RHEL4) so when I did the copy and set LD_LIBRARY_PATH or set LD_LIBRARY_PATH to a .so that's installed but not in /usr/lib I was running a libelan.so which hadn't been touched but when I didn't set it I was running with a modified one. Running "prelink -ua" as root on the computer node causes it to output properly, "prelink -a" causes it to only print the .so name. My best guess is that in the prelinked library the "real" static symbols are being used where as in the non prelinked library the relocation table is being used and without having a handle on the relocation table valgrind isn't able to correlate the address with the source file. This isn't really my area of expertise though. Ashley, |