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



Reply via email to