Sven Arvidsson wrote: > This is a follow up for Debian bug 332182 > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=332182 > > Using GTK+ 2.12, I have tried the sample program under valgrind, and it > doesn't seem to catch any errors. > > Can somebody who's proficient with valgrind confirm this?
I don't know if I qualify is 'proficient', but I no longer receiver any valgrind *errors* from GTK using the 'bug.c' sample program, but I do still see many errors from /lib/ld-2.7.so . I am using Debian testing (lenny) amd64 with gtk+2.0 version 2.12.1-1, and libc6 version 2.7-3 . Also, I still see some memory reported as being leaked by GTK when using the sample program -- is memory really being leaked or is valgrind misreporting that? Please refer to my attached valgrind log. Thanks, -- Steven Chamberlain [EMAIL PROTECTED]
==30456== Memcheck, a memory error detector. ==30456== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==30456== Using LibVEX rev 1732, a library for dynamic binary translation. ==30456== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==30456== Using valgrind-3.2.3-Debian, a dynamic binary instrumentation framework. ==30456== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==30456== For more details, rerun with: -v ==30456== ==30456== Conditional jump or move depends on uninitialised value(s) ==30456== at 0x4015EF7: strlen (in /lib/ld-2.7.so) ==30456== by 0x400522C: fillin_rpath (in /lib/ld-2.7.so) ==30456== by 0x4007DB6: _dl_init_paths (in /lib/ld-2.7.so) ==30456== by 0x4003339: dl_main (in /lib/ld-2.7.so) ==30456== by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so) ==30456== by 0x400230A: _dl_start (in /lib/ld-2.7.so) ==30456== by 0x4000A67: (within /lib/ld-2.7.so) ==30456== ==30456== Conditional jump or move depends on uninitialised value(s) ==30456== at 0x4015D9E: index (in /lib/ld-2.7.so) ==30456== by 0x400780A: expand_dynamic_string_token (in /lib/ld-2.7.so) ==30456== by 0x40085CE: _dl_map_object (in /lib/ld-2.7.so) ==30456== by 0x4000C4A: map_doit (in /lib/ld-2.7.so) ==30456== by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so) ==30456== by 0x400475F: dl_main (in /lib/ld-2.7.so) ==30456== by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so) ==30456== by 0x400230A: _dl_start (in /lib/ld-2.7.so) ==30456== by 0x4000A67: (within /lib/ld-2.7.so) ==30456== ==30456== Conditional jump or move depends on uninitialised value(s) ==30456== at 0x4015DA9: index (in /lib/ld-2.7.so) ==30456== by 0x400780A: expand_dynamic_string_token (in /lib/ld-2.7.so) ==30456== by 0x40085CE: _dl_map_object (in /lib/ld-2.7.so) ==30456== by 0x4000C4A: map_doit (in /lib/ld-2.7.so) ==30456== by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so) ==30456== by 0x400475F: dl_main (in /lib/ld-2.7.so) ==30456== by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so) ==30456== by 0x400230A: _dl_start (in /lib/ld-2.7.so) ==30456== by 0x4000A67: (within /lib/ld-2.7.so) ==30456== ==30456== Conditional jump or move depends on uninitialised value(s) ==30456== at 0x4015DB4: index (in /lib/ld-2.7.so) ==30456== by 0x400780A: expand_dynamic_string_token (in /lib/ld-2.7.so) ==30456== by 0x40085CE: _dl_map_object (in /lib/ld-2.7.so) ==30456== by 0x4000C4A: map_doit (in /lib/ld-2.7.so) ==30456== by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so) ==30456== by 0x400475F: dl_main (in /lib/ld-2.7.so) ==30456== by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so) ==30456== by 0x400230A: _dl_start (in /lib/ld-2.7.so) ==30456== by 0x4000A67: (within /lib/ld-2.7.so) ==30456== ==30456== Conditional jump or move depends on uninitialised value(s) ==30456== at 0x4015F11: strlen (in /lib/ld-2.7.so) ==30456== by 0x4007817: expand_dynamic_string_token (in /lib/ld-2.7.so) ==30456== by 0x40085CE: _dl_map_object (in /lib/ld-2.7.so) ==30456== by 0x4000C4A: map_doit (in /lib/ld-2.7.so) ==30456== by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so) ==30456== by 0x400475F: dl_main (in /lib/ld-2.7.so) ==30456== by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so) ==30456== by 0x400230A: _dl_start (in /lib/ld-2.7.so) ==30456== by 0x4000A67: (within /lib/ld-2.7.so) ==30456== ==30456== Conditional jump or move depends on uninitialised value(s) ==30456== at 0x4015F11: strlen (in /lib/ld-2.7.so) ==30456== by 0x400A99D: _dl_new_object (in /lib/ld-2.7.so) ==30456== by 0x40061E4: _dl_map_object_from_fd (in /lib/ld-2.7.so) ==30456== by 0x4008677: _dl_map_object (in /lib/ld-2.7.so) ==30456== by 0x4000C4A: map_doit (in /lib/ld-2.7.so) ==30456== by 0x400DDF5: _dl_catch_error (in /lib/ld-2.7.so) ==30456== by 0x400475F: dl_main (in /lib/ld-2.7.so) ==30456== by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so) ==30456== by 0x400230A: _dl_start (in /lib/ld-2.7.so) ==30456== by 0x4000A67: (within /lib/ld-2.7.so) ==30456== ==30456== Conditional jump or move depends on uninitialised value(s) ==30456== at 0x400B08F: _dl_relocate_object (in /lib/ld-2.7.so) ==30456== by 0x4003C16: dl_main (in /lib/ld-2.7.so) ==30456== by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so) ==30456== by 0x400230A: _dl_start (in /lib/ld-2.7.so) ==30456== by 0x4000A67: (within /lib/ld-2.7.so) ==30456== ==30456== Conditional jump or move depends on uninitialised value(s) ==30456== at 0x400B09C: _dl_relocate_object (in /lib/ld-2.7.so) ==30456== by 0x4003C16: dl_main (in /lib/ld-2.7.so) ==30456== by 0x4014837: _dl_sysdep_start (in /lib/ld-2.7.so) ==30456== by 0x400230A: _dl_start (in /lib/ld-2.7.so) ==30456== by 0x4000A67: (within /lib/ld-2.7.so) ==30456== ==30456== ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 1 from 1) ==30456== malloc/free: in use at exit: 148,534 bytes in 1,120 blocks. ==30456== malloc/free: 1,757 allocs, 637 frees, 632,790 bytes allocated. ==30456== For counts of detected errors, rerun with: -v ==30456== searching for pointers to 1,120 not-freed blocks. ==30456== checked 561,184 bytes. ==30456== ==30456== ==30456== 292 (52 direct, 240 indirect) bytes in 1 blocks are definitely lost in loss record 29 of 77 ==30456== at 0x4C21C16: malloc (vg_replace_malloc.c:149) ==30456== by 0x7E21FB0: nss_parse_service_list (nsswitch.c:530) ==30456== by 0x7E2286E: __nss_database_lookup (nsswitch.c:134) ==30456== by 0x942A42F: ??? ==30456== by 0x942B968: ??? ==30456== by 0x7DD6A40: getpwnam_r@@GLIBC_2.2.5 (getXXbyYY_r.c:226) ==30456== by 0x7AE8D3A: (within /usr/lib/libglib-2.0.so.0.1400.3) ==30456== by 0x7AEA4F7: g_get_home_dir (in /usr/lib/libglib-2.0.so.0.1400.3) ==30456== by 0x4FB0E8C: gtk_rc_add_initial_default_files (gtkrc.c:557) ==30456== by 0x4FB3C8C: _gtk_rc_init (gtkrc.c:894) ==30456== by 0x4F6ABB7: post_parse_hook (gtkmain.c:664) ==30456== by 0x7ACA91E: g_option_context_parse (in /usr/lib/libglib-2.0.so.0.1400.3) ==30456== by 0x4F6A86E: gtk_parse_args (gtkmain.c:859) ==30456== by 0x4F6A8C8: gtk_init_check (gtkmain.c:895) ==30456== by 0x4F6A8F8: gtk_init (gtkmain.c:933) ==30456== by 0x400733: main (bug.c:13) ==30456== ==30456== ==30456== 1,600 bytes in 20 blocks are possibly lost in loss record 60 of 77 ==30456== at 0x4C20F3F: calloc (vg_replace_malloc.c:279) ==30456== by 0x7AC5181: g_malloc0 (in /usr/lib/libglib-2.0.so.0.1400.3) ==30456== by 0x74677DF: (within /usr/lib/libgobject-2.0.so.0.1400.3) ==30456== by 0x746792E: (within /usr/lib/libgobject-2.0.so.0.1400.3) ==30456== by 0x746A80A: g_type_init_with_debug_flags (in /usr/lib/libgobject-2.0.so.0.1400.3) ==30456== by 0x53F9B6E: gdk_pre_parse_libgtk_only (gdk.c:184) ==30456== by 0x4F6AC76: pre_parse_hook (gtkmain.c:595) ==30456== by 0x7ACA786: g_option_context_parse (in /usr/lib/libglib-2.0.so.0.1400.3) ==30456== by 0x4F6A86E: gtk_parse_args (gtkmain.c:859) ==30456== by 0x4F6A8C8: gtk_init_check (gtkmain.c:895) ==30456== by 0x4F6A8F8: gtk_init (gtkmain.c:933) ==30456== by 0x400733: main (bug.c:13) ==30456== ==30456== ==30456== 17,328 bytes in 5 blocks are possibly lost in loss record 75 of 77 ==30456== at 0x4C20E3D: memalign (vg_replace_malloc.c:332) ==30456== by 0x4C20E96: posix_memalign (vg_replace_malloc.c:425) ==30456== by 0x7AD7CB9: (within /usr/lib/libglib-2.0.so.0.1400.3) ==30456== by 0x7AD8AE2: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.1400.3) ==30456== by 0x7AD8C05: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.1400.3) ==30456== by 0x746EFBE: g_type_create_instance (in /usr/lib/libgobject-2.0.so.0.1400.3) ==30456== by 0x7454DAC: (within /usr/lib/libgobject-2.0.so.0.1400.3) ==30456== by 0x745539F: g_object_newv (in /usr/lib/libgobject-2.0.so.0.1400.3) ==30456== by 0x7455EA1: g_object_new_valist (in /usr/lib/libgobject-2.0.so.0.1400.3) ==30456== by 0x7455FE0: g_object_new (in /usr/lib/libgobject-2.0.so.0.1400.3) ==30456== by 0x541A415: gdk_display_open (gdkdisplay-x11.c:157) ==30456== by 0x53F9A53: gdk_display_open_default_libgtk_only (gdk.c:288) ==30456== by 0x4F6A8D3: gtk_init_check (gtkmain.c:898) ==30456== by 0x4F6A8F8: gtk_init (gtkmain.c:933) ==30456== by 0x400733: main (bug.c:13) ==30456== ==30456== LEAK SUMMARY: ==30456== definitely lost: 52 bytes in 1 blocks. ==30456== indirectly lost: 240 bytes in 10 blocks. ==30456== possibly lost: 18,928 bytes in 25 blocks. ==30456== still reachable: 129,314 bytes in 1,084 blocks. ==30456== suppressed: 0 bytes in 0 blocks. ==30456== Reachable blocks (those to which a pointer was found) are not shown. ==30456== To see them, rerun with: --leak-check=full --show-reachable=yes

