Bug#400048: gtranslator: Segfaults very often when editing

Martin Hawlisch Martin.Hawlisch at gmx.de
Fri Nov 24 11:26:33 UTC 2006


> Von: "Loïc Minier" <lool at dooz.org>
> Betreff: Re: Bug#400048: gtranslator: Segfaults very often when editing
>
>  In this situation, the best would be to rebuild it with debugging
>  symbols and run it under valgrind.

OK, I rebuild gtranslatior using:
DEB_BUILD_OPTIONS=debug,noopt,nostrip dpkg-buildpackage -uc -us -rfakeroot

To reproduce: Simply keep copy and pasting between the text of the original message to the translated text.


Now I get the following backtrace:

*** glibc detected *** free(): invalid pointer: 0x08202f18 ***

Program received signal SIGABRT, Aborted.
[Switching to Thread -1224922368 (LWP 2909)]
0xb7fda410 in ?? ()
(gdb) bt
#0  0xb7fda410 in ?? ()
#1  0xbfd9297c in ?? ()
#2  0x00000006 in ?? ()
#3  0x00000b5d in ?? ()
#4  0xb7366811 in raise () from /lib/tls/i686/cmov/libc.so.6
#5  0xb7367fb9 in abort () from /lib/tls/i686/cmov/libc.so.6
#6  0xb739bc8a in __fsetlocking () from /lib/tls/i686/cmov/libc.so.6
#7  0xb73a351f in mallopt () from /lib/tls/i686/cmov/libc.so.6
#8  0xb73a35c2 in free () from /lib/tls/i686/cmov/libc.so.6
#9  0xb74b3b31 in g_free () from /usr/lib/libglib-2.0.so.0
#10 0x08057c1e in get_selection_buffer (buffer=0x81222c8) at gui.c:581
#11 0x08057edb in gtranslator_clipboard_copy (widget=0x80fe838, useless=0x0) at gui.c:647
#12 0xb7531e1b in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#13 0xb752498b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#14 0xb7534f2d in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0
#15 0xb7536429 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#16 0xb75365d9 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#17 0xb7a3792d in gtk_widget_can_activate_accel () from /usr/lib/libgtk-x11-2.0.so.0
#18 0xb752498b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#19 0xb7534f2d in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0
#20 0xb7536208 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#21 0xb75365d9 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#22 0xb7869f89 in gtk_accel_group_activate () from /usr/lib/libgtk-x11-2.0.so.0
#23 0xb786a08a in gtk_accel_groups_activate () from /usr/lib/libgtk-x11-2.0.so.0
#24 0xb7a4504a in gtk_window_activate_key () from /usr/lib/libgtk-x11-2.0.so.0
#25 0xb7a450bc in gtk_window_activate_key () from /usr/lib/libgtk-x11-2.0.so.0
#26 0xb7949250 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0
#27 0xb7522f49 in g_value_set_boxed () from /usr/lib/libgobject-2.0.so.0
#28 0xb752498b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#29 0xb753556f in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0
#30 0xb7536208 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#31 0xb75365d9 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#32 0xb7a32e84 in gtk_widget_get_default_style () from /usr/lib/libgtk-x11-2.0.so.0
#33 0xb7942c0a in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#34 0xb7943e07 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#35 0xb77dbeea in _gdk_events_init () from /usr/lib/libgdk-x11-2.0.so.0
#36 0xb74ac731 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#37 0xb74af7a6 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#38 0xb74afb67 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#39 0xb7944281 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#40 0x0805e056 in main (argc=2, argv=0xbfd93e94) at main.c:527



Running valgrind (I have never used that before) gives:
(only the latest error, which is the same as in the backtrace):

==2980== Invalid free() / delete / delete[]
==2980==    at 0x401CFA5: free (vg_replace_malloc.c:233)
==2980==    by 0x4B18B30: g_free (in /usr/lib/libglib-2.0.so.0.1200.4)
==2980==    by 0x8057C1D: get_selection_buffer (gui.c:581)
==2980==    by 0x8057EDA: gtranslator_clipboard_copy (gui.c:647)
==2980==    by 0x4ABAE1A: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1200.4)
==2980==    by 0x4AAD98A: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1200.4)
==2980==    by 0x4ABDF2C: (within /usr/lib/libgobject-2.0.so.0.1200.4)
==2980==    by 0x4ABF428: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.1200.4)
==2980==    by 0x4ABF5D8: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.1200.4)
==2980==    by 0x471092C: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==2980==    by 0x4AAD98A: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1200.4)
==2980==    by 0x4ABDF2C: (within /usr/lib/libgobject-2.0.so.0.1200.4)
==2980==  Address 0x5DDAE28 is 40 bytes inside a block of size 504 alloc'd
==2980==    at 0x401C58B: memalign (vg_replace_malloc.c:332)
==2980==    by 0x401C5E5: posix_memalign (vg_replace_malloc.c:421)
==2980==    by 0x4B27F37: (within /usr/lib/libglib-2.0.so.0.1200.4)
==2980==    by 0x4B2896E: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.1200.4)
==2980==    by 0x4931B3F: pango_item_copy (in /usr/lib/libpango-1.0.so.0.1400.7)
==2980==    by 0x4931C31: pango_item_split (in /usr/lib/libpango-1.0.so.0.1400.7)
==2980==    by 0x4936228: (within /usr/lib/libpango-1.0.so.0.1400.7)
==2980==    by 0x49368B6: (within /usr/lib/libpango-1.0.so.0.1400.7)
==2980==    by 0x49371BA: (within /usr/lib/libpango-1.0.so.0.1400.7)
==2980==    by 0x460ABBA: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==2980==    by 0x460F0DD: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==2980==    by 0x4ABA48A: g_cclosure_marshal_VOID__BOXED (in /usr/lib/libgobject-2.0.so.0.1200.4)
==2980==
==2980== ERROR SUMMARY: 84 errors from 24 contexts (suppressed: 141 from 1)
==2980== malloc/free: in use at exit: 9,023,038 bytes in 122,467 blocks.
==2980== malloc/free: 490,097 allocs, 367,634 frees, 629,158,406 bytes allocated.
==2980== For counts of detected errors, rerun with: -v
==2980== searching for pointers to 122,467 not-freed blocks.
==2980== checked 3,635,084 bytes.
==2980==
==2980== LEAK SUMMARY:
==2980==    definitely lost: 5,703,474 bytes in 68,373 blocks.
==2980==      possibly lost: 270,937 bytes in 491 blocks.
==2980==    still reachable: 3,048,627 bytes in 53,603 blocks.
==2980==         suppressed: 0 bytes in 0 blocks.
==2980== Use --leak-check=full to see details of leaked memory.

Hope that helps.
  Cheers, Martin.


-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer





More information about the pkg-gnome-maintainers mailing list