|
From: Ashley P. <as...@qu...> - 2007-02-16 16:35:29
|
On Fri, 2007-02-16 at 15:44 +0000, Julian Seward wrote:
> Hi Ashley
>
> > I've still got a couple of shared libraries where valgrind isn't
> > reporting functions/line numbers correctly for errors, what are the
> > instructions for using this new feature and I'll try it here, I remember
> > something about being able to enable it on a per so basis?
>
> Well, it's still in development. I just stopped for lunch and
> intend to chase some discrepancies it found now.
>
> Nevertheless: decide which so's you want to dump info for.
>
> Then do
>
> "--trace-symtab-patt=<pattern that matches the soname>"
> --debug-dump=frames
>
> and compare the results against
>
> readelf --debug-dump=frames
>
> for the .so in question. It's not pretty.
> I presume you are talking about amd64-linux here.
What do I put for --trace-symtab-patt? I get debug output without it
but if I add it then I get nothing. I've tried the library name "mpi",
the filename and the full path of the filename but none of them seem to
work. Yes it's amd64-linux.
$ ldd /usr/bin/mping
libmpi.so.1.0 => /usr/lib/mpi/default/lib/libmpi.so.1.0
(0x0000002a9566c000)
libmpio.so.1.0 => /usr/lib/mpi/default/lib/libmpio.so.1.0
(0x0000002a957d0000)
libelan.so.1 => /usr/lib64/libelan.so.1 (0x0000002a95908000)
libpthread.so.0 => /lib64/tls/libpthread.so.0
(0x0000002a95a86000)
librt.so.1 => /lib64/tls/librt.so.1 (0x0000002a95b9b000)
libg2c.so.0 => /usr/lib64/libg2c.so.0 (0x0000002a95cb6000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a95dd7000)
librmscall.so.1 => /usr/lib64/librmscall.so.1
(0x0000002a9600b000)
libelanctrl.so.2 => /usr/lib64/libelanctrl.so.2
(0x0000002a96111000)
libelan4.so.1 => /usr/lib64/libelan4.so.1 (0x0000002a96218000)
/lib64/ld-linux-x86-64.so.2 (0x0000002a95556000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a96341000)
$ /opt/valgrind-3.3.0.SVN-quadrics-20070215/bin/valgrind
--debug-dump=line
--trace-symtab-patt=/usr/lib/mpi/default/lib/libmpi.so.1.0 /usr/bin/mping
==3018== Memcheck, a memory error detector.
==3018== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==3018== Using LibVEX rev 1594, a library for dynamic binary
translation.
==3018== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==3018== Using valgrind-3.3.0.SVN, a dynamic binary instrumentation
framework.
==3018== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==3018== For more details, rerun with: -v
==3018==
ELAN_EXCEPTION @ --: 6 (Initialisation error)
elan_init: Can't get capability from environment
==3018==
==3018== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 9 from 4)
==3018== malloc/free: in use at exit: 3,632 bytes in 3 blocks.
==3018== malloc/free: 3 allocs, 0 frees, 3,632 bytes allocated.
==3018== For counts of detected errors, rerun with: -v
==3018== searching for pointers to 3 not-freed blocks.
==3018== checked 522,504 bytes.
==3018==
==3018== LEAK SUMMARY:
==3018== definitely lost: 0 bytes in 0 blocks.
==3018== possibly lost: 0 bytes in 0 blocks.
==3018== still reachable: 3,632 bytes in 3 blocks.
==3018== suppressed: 0 bytes in 0 blocks.
==3018== Rerun with --leak-check=full to see details of leaked memory.
Aborted
|