On Sat, 2008-03-29 at 19:50 -0700, Daniel Burrows wrote: > On Sun, Mar 30, 2008 at 12:39:21AM +0100, Bram Senders <[EMAIL PROTECTED]> > was heard to say: > > I am also on PowerPC (as is the original reporter), and I can reproduce > > this on my machine. > > What do you get if you install valgrind and run > > valgrind --log-file=/tmp/aptitude.grind aptitude > > , then reproduce the bug?
Okay, here it is attached. Cheers, Bram
==5065== Memcheck, a memory error detector. ==5065== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==5065== Using LibVEX rev 1804, a library for dynamic binary translation. ==5065== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==5065== Using valgrind-3.3.0-Debian, a dynamic binary instrumentation framework. ==5065== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==5065== For more details, rerun with: -v ==5065== ==5065== My PID = 5065, parent PID = 4248. Prog and args are: ==5065== aptitude ==5065== ==5065== Conditional jump or move depends on uninitialised value(s) ==5065== at 0x400261C: _dl_start (in /lib/ld-2.7.so) ==5065== by 0x4016BE4: _start (in /lib/ld-2.7.so) ==5065== ==5065== Conditional jump or move depends on uninitialised value(s) ==5065== at 0x4002654: _dl_start (in /lib/ld-2.7.so) ==5065== by 0x4016BE4: _start (in /lib/ld-2.7.so) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xFFBBC7C: strlen (mc_replace_strmem.c:242) ==5065== by 0xF6593D4: __dcigettext (dcigettext.c:456) ==5065== by 0xF658290: dcgettext (dcgettext.c:53) ==5065== by 0x100F9F4C: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (ui.cc:2385) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d5c is 12 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xFFBBC94: strlen (mc_replace_strmem.c:242) ==5065== by 0xF6593D4: __dcigettext (dcigettext.c:456) ==5065== by 0xF658290: dcgettext (dcgettext.c:53) ==5065== by 0x100F9F4C: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (ui.cc:2385) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d5d is 13 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xFFBD790: memcpy (mc_replace_strmem.c:402) ==5065== by 0xF659408: __dcigettext (dcigettext.c:462) ==5065== by 0xF658290: dcgettext (dcgettext.c:53) ==5065== by 0x100F9F4C: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (ui.cc:2385) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d97 is 71 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xFFBD7A0: memcpy (mc_replace_strmem.c:402) ==5065== by 0xF659408: __dcigettext (dcigettext.c:462) ==5065== by 0xF658290: dcgettext (dcgettext.c:53) ==5065== by 0x100F9F4C: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (ui.cc:2385) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d96 is 70 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xFFBD7B0: memcpy (mc_replace_strmem.c:402) ==5065== by 0xF659408: __dcigettext (dcigettext.c:462) ==5065== by 0xF658290: dcgettext (dcgettext.c:53) ==5065== by 0x100F9F4C: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (ui.cc:2385) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d95 is 69 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xFFBD7C0: memcpy (mc_replace_strmem.c:402) ==5065== by 0xF659408: __dcigettext (dcigettext.c:462) ==5065== by 0xF658290: dcgettext (dcgettext.c:53) ==5065== by 0x100F9F4C: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (ui.cc:2385) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d94 is 68 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xFFBBC7C: strlen (mc_replace_strmem.c:242) ==5065== by 0xFD65D0C: cwidget::util::transcode(char const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&, char const*) (transcode.cc:249) ==5065== by 0xFD65F00: cwidget::util::transcode(char const*, char const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > (*)(int, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::string const&)) (transcode.cc:287) ==5065== by 0xFD80EB4: cwidget::widgets::menu::menu(int, int, int, cwidget::widgets::menu_info*) (menu.cc:125) ==5065== by 0x100F9F94: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (menu.h:203) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d5c is 12 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xFFBBC94: strlen (mc_replace_strmem.c:242) ==5065== by 0xFD65D0C: cwidget::util::transcode(char const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&, char const*) (transcode.cc:249) ==5065== by 0xFD65F00: cwidget::util::transcode(char const*, char const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > (*)(int, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::string const&)) (transcode.cc:287) ==5065== by 0xFD80EB4: cwidget::widgets::menu::menu(int, int, int, cwidget::widgets::menu_info*) (menu.cc:125) ==5065== by 0x100F9F94: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (menu.h:203) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d5d is 13 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 1 ==5065== at 0xF64E480: __gconv_transform_utf8_internal (loop.c:316) ==5065== by 0xF649590: __gconv (gconv.c:80) ==5065== by 0xF6488E4: iconv (iconv.c:53) ==5065== by 0xFD643F0: cwidget::util::transcode_buffer(void*&, char*&, unsigned&, char const*, unsigned, unsigned&, char const*) (transcode.cc:115) ==5065== by 0xFD65D2C: cwidget::util::transcode(char const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&, char const*) (transcode.cc:249) ==5065== by 0xFD65F00: cwidget::util::transcode(char const*, char const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > (*)(int, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::string const&)) (transcode.cc:287) ==5065== by 0xFD80EB4: cwidget::widgets::menu::menu(int, int, int, cwidget::widgets::menu_info*) (menu.cc:125) ==5065== by 0x100F9F94: add_menu(cwidget::widgets::menu_info*, std::string const&, cwidget::util::ref_ptr<cwidget::widgets::label> const&) (menu.h:203) ==5065== by 0x10118858: ui_init() (ui.cc:2520) ==5065== by 0x1001B2AC: main (main.cc:695) ==5065== Address 0x4037d5c is 12 bytes inside a block of size 72 free'd ==5065== at 0xFFB99BC: operator delete(void*) (vg_replace_malloc.c:342) ==5065== by 0xF961C80: std::string::_Rep::_M_destroy(std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.10) ==5065== by 0x10116F6C: __static_initialization_and_destruction_0(int, int) (basic_string.h:238) ==5065== by 0x10231CB4: (within /usr/bin/aptitude) ==5065== by 0x10019CC4: (within /usr/bin/aptitude) ==5065== by 0x10231934: __libc_csu_init (in /usr/bin/aptitude) ==5065== by 0xF6476B8: (below main) (libc-start.c:181) ==5065== ==5065== Invalid read of size 4 ==5065== at 0xFDCA7EC: cwidget::widgets::widget::widget() (limit_reference.h:81) ==5065== by 0xFD9DDD0: cwidget::widgets::passthrough::passthrough() (container.h:35) ==5065== by 0xFDB16BC: cwidget::widgets::table::table() (table.cc:60) ==5065== by 0x100361C8: aptitude::ui::config::(anonymous namespace)::apt_options_view::apt_options_view() (apt_options.cc:514) ==5065== by 0x100372DC: aptitude::ui::config::make_options_tree() (apt_options.cc:577) ==5065== by 0x1010EC58: do_show_options_tree() (ui.cc:689) ==5065== by 0x1001EDE4: sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const (ptr_fun.h:77) ==5065== by 0x1001EE10: sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) (slot.h:103) ==5065== by 0xFD7EE14: cwidget::widgets::menu::handle_key(cwidget::config::key const&) (signal.h:548) ==5065== by 0xFDC7FF0: cwidget::widgets::widget::dispatch_key(cwidget::config::key const&) (widget.cc:267) ==5065== by 0xFD880C4: cwidget::widgets::menubar::handle_key(cwidget::config::key const&) (menubar.cc:599) ==5065== by 0xFDC7FF0: cwidget::widgets::widget::dispatch_key(cwidget::config::key const&) (widget.cc:267) ==5065== Address 0x74656d20 is not stack'd, malloc'd or (recently) free'd ==5065== ==5065== ERROR SUMMARY: 244 errors from 12 contexts (suppressed: 1 from 1) ==5065== malloc/free: in use at exit: 10,348,527 bytes in 188,190 blocks. ==5065== malloc/free: 1,632,475 allocs, 1,444,285 frees, 49,310,587 bytes allocated. ==5065== For counts of detected errors, rerun with: -v ==5065== searching for pointers to 188,190 not-freed blocks. ==5065== checked 42,778,184 bytes. ==5065== ==5065== LEAK SUMMARY: ==5065== definitely lost: 1,097 bytes in 62 blocks. ==5065== possibly lost: 3,585,463 bytes in 2,027 blocks. ==5065== still reachable: 6,761,967 bytes in 186,101 blocks. ==5065== suppressed: 0 bytes in 0 blocks. ==5065== Rerun with --leak-check=full to see details of leaked memory.