On May 16, 2007, at 9:39 PM, Xavier Noria wrote:
Errors? I've seen leaks (including one in DynaLoader), but I
don't recall errors under 5.8.8.
This is the first time I use Valgrind. Using 5.8.8 the test suite
passes but there's a report that reads:
ERROR SUMMARY: 18 errors from 14 contexts (suppressed: 19 from 1)
and a lot of stuff I don't understand at the beginning. I copy the
output below. Do you smell in that report that albeit the tests
pass there may be some incorrect C code? For instance before the
first ok 1 there's a suspicious
Invalid read of size 4
I'll try to figure out whether that happens before or while the
first test runs.
Looks like those reported errors at the beginning are unrelated to my
module indeed, it is enough to load blib.pm to get them, I copy below
the output. In 5.6.2 the same command gives two errors "Conditional
jump...", and no "Invalid read...".
-- fxn
[EMAIL PROTECTED]:~/FXN/Algorithm-Combinatorics-0.22$ ~/FXN/local/bin/
valgrind --leak-check=yes perl5.8.8 -Mblib -e1
==4099== Memcheck, a memory error detector.
==4099== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==4099== Using LibVEX rev 1732, a library for dynamic binary
translation.
==4099== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==4099== Using valgrind-3.2.3, a dynamic binary instrumentation
framework.
==4099== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==4099== For more details, rerun with: -v
==4099==
==4099== Conditional jump or move depends on uninitialised value(s)
==4099== at 0x4010C4E: (within /lib/ld-2.3.6.so)
==4099== by 0x4006704: (within /lib/ld-2.3.6.so)
==4099== by 0x418C30F: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099== by 0x80BC3A8: Perl_runops_standard (in /usr/bin/perl5.8.8)
==4099==
==4099== Conditional jump or move depends on uninitialised value(s)
==4099== at 0x4010C5D: (within /lib/ld-2.3.6.so)
==4099== by 0x4006704: (within /lib/ld-2.3.6.so)
==4099== by 0x418C30F: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099== by 0x80BC3A8: Perl_runops_standard (in /usr/bin/perl5.8.8)
==4099==
==4099== Conditional jump or move depends on uninitialised value(s)
==4099== at 0x4010C6C: (within /lib/ld-2.3.6.so)
==4099== by 0x4006704: (within /lib/ld-2.3.6.so)
==4099== by 0x418C30F: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099== by 0x80BC3A8: Perl_runops_standard (in /usr/bin/perl5.8.8)
==4099==
==4099== Conditional jump or move depends on uninitialised value(s)
==4099== at 0x4010DDC: (within /lib/ld-2.3.6.so)
==4099== by 0x4006704: (within /lib/ld-2.3.6.so)
==4099== by 0x418C30F: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099== by 0x80BC3A8: Perl_runops_standard (in /usr/bin/perl5.8.8)
==4099==
==4099== Conditional jump or move depends on uninitialised value(s)
==4099== at 0x4010DDC: (within /lib/ld-2.3.6.so)
==4099== by 0x4004B78: (within /lib/ld-2.3.6.so)
==4099== by 0x4006792: (within /lib/ld-2.3.6.so)
==4099== by 0x418C30F: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099==
==4099== Invalid read of size 4
==4099== at 0x4010DD3: (within /lib/ld-2.3.6.so)
==4099== by 0x4004B78: (within /lib/ld-2.3.6.so)
==4099== by 0x4006792: (within /lib/ld-2.3.6.so)
==4099== by 0x418C30F: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099== Address 0x43A42B8 is 32 bytes inside a block of size 34
alloc'd
==4099== at 0x401D4B0: malloc (vg_replace_malloc.c:149)
==4099== by 0x4005DA5: (within /lib/ld-2.3.6.so)
==4099== by 0x4006704: (within /lib/ld-2.3.6.so)
==4099== by 0x418C30F: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099==
==4099== Conditional jump or move depends on uninitialised value(s)
==4099== at 0x4008ED5: (within /lib/ld-2.3.6.so)
==4099== by 0x418C764: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099== by 0x80BC3A8: Perl_runops_standard (in /usr/bin/perl5.8.8)
==4099== by 0x80626BD: (within /usr/bin/perl5.8.8)
==4099==
==4099== Conditional jump or move depends on uninitialised value(s)
==4099== at 0x4008B2E: (within /lib/ld-2.3.6.so)
==4099== by 0x418C764: (within /lib/libc-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x418BE9E: _dl_open (in /lib/libc-2.3.6.so)
==4099== by 0x4025D8D: (within /lib/libdl-2.3.6.so)
==4099== by 0x400B44E: (within /lib/ld-2.3.6.so)
==4099== by 0x40261BC: (within /lib/libdl-2.3.6.so)
==4099== by 0x4025D20: dlopen (in /lib/libdl-2.3.6.so)
==4099== by 0x8060A74: XS_DynaLoader_dl_load_file (in /usr/bin/
perl5.8.8)
==4099== by 0x80BDAD0: Perl_pp_entersub (in /usr/bin/perl5.8.8)
==4099== by 0x80BC3A8: Perl_runops_standard (in /usr/bin/perl5.8.8)
==4099== by 0x80626BD: (within /usr/bin/perl5.8.8)
==4099==
==4099== ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 19 from 1)
==4099== malloc/free: in use at exit: 620,598 bytes in 9,985 blocks.
==4099== malloc/free: 17,614 allocs, 7,629 frees, 979,886 bytes
allocated.
==4099== For counts of detected errors, rerun with: -v
==4099== searching for pointers to 9,985 not-freed blocks.
==4099== checked 947,864 bytes.
==4099==
==4099==
==4099== 5 bytes in 1 blocks are definitely lost in loss record 1 of 21
==4099== at 0x401D4B0: malloc (vg_replace_malloc.c:149)
==4099== by 0x80AC69D: Perl_savesharedpv (in /usr/bin/perl5.8.8)
==4099== by 0x8064EF5: (within /usr/bin/perl5.8.8)
==4099== by 0x80671CB: perl_parse (in /usr/bin/perl5.8.8)
==4099== by 0x805FF71: main (in /usr/bin/perl5.8.8)
==4099==
==4099==
==4099== 68 bytes in 1 blocks are possibly lost in loss record 9 of 21
==4099== at 0x401C7EF: calloc (vg_replace_malloc.c:279)
==4099== by 0x400E188: (within /lib/ld-2.3.6.so)
==4099== by 0x400E214: (within /lib/ld-2.3.6.so)
==4099== by 0x400E257: _dl_allocate_tls (in /lib/ld-2.3.6.so)
==4099== by 0x4054FBD: __pthread_initialize_minimal (in /lib/
libpthread-0.10.so)
==4099== by 0x40511C4: (within /lib/libpthread-0.10.so)
==4099== by 0x4050BFF: (within /lib/libpthread-0.10.so)
==4099== by 0x400B7F4: (within /lib/ld-2.3.6.so)
==4099== by 0x400B94C: (within /lib/ld-2.3.6.so)
==4099== by 0x40007EE: (within /lib/ld-2.3.6.so)
==4099==
==4099==
==4099== 2,768 bytes in 1 blocks are possibly lost in loss record 14
of 21
==4099== at 0x401C6DB: memalign (vg_replace_malloc.c:332)
==4099== by 0x400E1E6: (within /lib/ld-2.3.6.so)
==4099== by 0x400E257: _dl_allocate_tls (in /lib/ld-2.3.6.so)
==4099== by 0x4054FBD: __pthread_initialize_minimal (in /lib/
libpthread-0.10.so)
==4099== by 0x40511C4: (within /lib/libpthread-0.10.so)
==4099== by 0x4050BFF: (within /lib/libpthread-0.10.so)
==4099== by 0x400B7F4: (within /lib/ld-2.3.6.so)
==4099== by 0x400B94C: (within /lib/ld-2.3.6.so)
==4099== by 0x40007EE: (within /lib/ld-2.3.6.so)
==4099==
==4099==
==4099== 10,433 (1,738 direct, 8,695 indirect) bytes in 15 blocks are
definitely lost in loss record 15 of 21
==4099== at 0x401D4B0: malloc (vg_replace_malloc.c:149)
==4099== by 0x80AC83E: Perl_safesysmalloc (in /usr/bin/perl5.8.8)
==4099== by 0x80EA9CA: Perl_new_stackinfo (in /usr/bin/perl5.8.8)
==4099== by 0x8061123: Perl_init_stacks (in /usr/bin/perl5.8.8)
==4099== by 0x80688CA: perl_construct (in /usr/bin/perl5.8.8)
==4099== by 0x805FF39: main (in /usr/bin/perl5.8.8)
==4099==
==4099==
==4099== 6,352 bytes in 2 blocks are definitely lost in loss record
17 of 21
==4099== at 0x401D5AB: realloc (vg_replace_malloc.c:306)
==4099== by 0x80AF267: Perl_safesysrealloc (in /usr/bin/perl5.8.8)
==4099== by 0x80EA86E: Perl_push_scope (in /usr/bin/perl5.8.8)
==4099== by 0x808A3F1: Perl_peep (in /usr/bin/perl5.8.8)
==4099== by 0x808A6B5: Perl_peep (in /usr/bin/perl5.8.8)
==4099== by 0x808A733: Perl_peep (in /usr/bin/perl5.8.8)
==4099== by 0x808A6B5: Perl_peep (in /usr/bin/perl5.8.8)
==4099== by 0x808A6B5: Perl_peep (in /usr/bin/perl5.8.8)
==4099== by 0x808A6B5: Perl_peep (in /usr/bin/perl5.8.8)
==4099== by 0x808A6B5: Perl_peep (in /usr/bin/perl5.8.8)
==4099== by 0x808A6B5: Perl_peep (in /usr/bin/perl5.8.8)
==4099== by 0x808A6B5: Perl_peep (in /usr/bin/perl5.8.8)
==4099==
==4099==
==4099== 180,628 bytes in 13 blocks are possibly lost in loss record
20 of 21
==4099== at 0x401D4B0: malloc (vg_replace_malloc.c:149)
==4099== by 0x80AC83E: Perl_safesysmalloc (in /usr/bin/perl5.8.8)
==4099== by 0x80C5AA0: (within /usr/bin/perl5.8.8)
==4099== by 0x80C9464: Perl_sv_upgrade (in /usr/bin/perl5.8.8)
==4099== by 0x8068BA3: perl_construct (in /usr/bin/perl5.8.8)
==4099== by 0x805FF39: main (in /usr/bin/perl5.8.8)
==4099==
==4099== LEAK SUMMARY:
==4099== definitely lost: 8,095 bytes in 18 blocks.
==4099== indirectly lost: 8,695 bytes in 18 blocks.
==4099== possibly lost: 183,464 bytes in 15 blocks.
==4099== still reachable: 420,344 bytes in 9,934 blocks.
==4099== suppressed: 0 bytes in 0 blocks.
==4099== Reachable blocks (those to which a pointer was found) are
not shown.
==4099== To see them, rerun with: --leak-check=full --show-reachable=yes