Testing valgrind in rawhide (separate valgrind-debuginfo package)
Jan Kratochvil
jan.kratochvil at redhat.com
Thu Mar 7 08:42:19 UTC 2013
On Wed, 06 Mar 2013 16:13:47 +0100, Mark Wielaard wrote:
> On Wed, 2013-03-06 at 14:38 +0000, Richard W.M. Jones wrote:
[...]
> > ==11843== 56 bytes in 1 blocks are definitely lost in loss record 6 of 6
> > ==11843== at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
> > ==11843== by 0x38EAC861F9: strdup (strdup.c:42)
> > ==11843== by 0x38EC8097C9: setprocattrcon_raw.constprop.3 (procattr.c:241)
> > ==11843== by 0x38EC8099B7: setprocattrcon.constprop.2 (procattr.c:274)
> > ==11843== by 0x400955: main (in /tmp/test)
[...]
> It looks like you will have to use the setprocattrcon[.constprop]
> function name in your suppression file. I am not exactly sure how the
> linker ends up pointing directly to that one for setsockcreatecon (),
> but it apparently is. And so valgrind will only know it by that name.
Symbol table '.symtab' contains 770 entries:
Num: Value Size Type Bind Vis Ndx Name
70: 0000000000009990 62 FUNC LOCAL DEFAULT 11 setprocattrcon.constprop.2
Contents of the .debug_info section:
<1><62c6>: Abbrev Number: 58 (DW_TAG_subprogram)
<62c7> DW_AT_name : (indirect string, offset: 0x3eb4): setprocattrcon
<62d2> DW_AT_inline : 1 (inlined)
<1><6791>: Abbrev Number: 40 (DW_TAG_subprogram)
<6792> DW_AT_abstract_origin: <0x62c6>
<6794> DW_AT_low_pc : 0x9990
<679c> DW_AT_high_pc : 62
Valgrind apparently used the ELF symbol name. But in DWARF there is the real
function name (and it is even marked as 'inlined' - although it is a standalone
function).
GDB also knows the real name from DWARF:
(gdb) disas 'setprocattrcon.constprop.2'
Dump of assembler code for function setprocattrcon:
0x0000000000009990 <+0>: push %rbx
[...]
0x00000000000099cd <+61>: retq
End of assembler dump.
So it is possible to fix it in Valgrind.
Jan
More information about the devel
mailing list