|
From: Ivo R. <iv...@iv...> - 2015-11-27 22:15:18
|
2015-11-26 20:36 GMT+01:00 Mark Wielaard <mj...@re...>: > On Thu, Nov 26, 2015 at 06:52:42PM +0100, Ivo Raisr wrote: > > For example test case memcheck/tests/test-plo-no previously showed: > > > > Address 0x7ff706360 is 0 bytes inside a block of size 5 alloc'd > > at 0x7FFB04ED2: memalign (vg_replace_malloc.c:450) > > by 0x401304: memalign16 (malloc.h:21) > > by 0x4014E2: main (test-plo.c:49) > > > > While now it shows only: > > Address 0x7ff706360 is 0 bytes inside a block of size 5 alloc'd > > at 0x7FFB04ED2: memalign (vgpreload_memcheck-amd64-solaris.so) > > by 0x401304: memalign16 (malloc.h:21) > > by 0x4014E2: main (test-plo.c:49) > > So, the addresses are exactly the same, but for the address in > vgpreload_memcheck-amd64-solaris.so no source line can be found? > > I am not sure how a change in symbol redirection can cause that. > Does --debug-dump=line give any hints/differences? > Yes, no source line can be found, just symbol name and soname. After some debugging and tracing, I found out that a loctab entry for this symbol (_vgr10110ZU_VgSoSynsomalloc_memalign) has size only 17 bytes. This means that ML_(search_one_loctab)() returns -1 (not found) which results in no source line. However debuginfo (and also readelf/elfdump) shows that size should be 225 bytes. So I will dig more into how that could be possible. Thank you for the hints provided and stay tuned... I. |