I use Xubuntu 8.10 with XFCE 4.4.2. I have xfce4-xkb-plugin-0.5.3.3 built and installed from sources. When I choose "About" in context menu, the plugin crashes while dialog doesn't appear. When I add the plugin to panel again it works as before crashing.
I could not reproduce this. What I do is: 1. Install version 0.5.3.3 2. Add the plugin to the panel 3. Choose "About" from the context menu The about dialog appears and the plugin does not crash. I'm using it on Ubuntu 8.10, Xfce 4.4.2.
What do I have to do for further testing? Is there any way to get a log? BTW, I had xfce4-xkb-plugin 0.5.2 before, which I had installed from jaunty Ubuntu repo. That version crashed in "About" too. Then I did so: sudo apt-get remove xfce4-xkb-plugin sudo apt-get build-dep xfce4-xkb-plugin tar zxvf xfce4-xkb-plugin-0.5.3.3.tar.gz cd xfce4-xkb-plugin-0.5.3.3 ./configure --prefix=/usr make sudo make install Then I added plugin to panel, made some settings (see the attached screenshot) and that's it. The plugin works until I select "About" in context menu (which causes crashing).
Created attachment 2228 My current settings (screenshot)
You may ./configure --enable-debug the plugin, then run it through gdb as described here: http://wiki.xfce.org/howto/panel_plugin_debug The post the log here. BTW, what is your locale?
My locale: LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL= BTW, when the plugin crashes such record appears in dmesg: [ 3936.365359] xfce4-xkb-plugi[7551]: segfault at 2 ip b72cf2fb sp bf92761c error 4 in libc-2.8.90.so[b7258000+158000] If it is not enough I'll try to debud the plugin on weekend.
I'll appreciate a full backtrace, if you need assistance on debugging feel free to ask. Thanks
Here is the log which I got according to wiki article: GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu"... Starting program: /usr/libexec/xfce4/panel-plugins/xfce4-xkb-plugin socket_id=0 name=xkb-plugin-gdb id=12370328462 display_name=Раскладки клавиатуры \(GDB\) size=26 screen_position=10 [Thread debugging using libthread_db enabled] [New Thread 0xb7138700 (LWP 13662)] Program exited with code 01. No stack. The program is not being run. So, I'm not so familiar with GDB. Please, explain me, how to get backtrace at that special moment. Where should I set a breakpoint or so?
I assume you have checked out the trunk from svn - lets say it is checked out in /home/user/xfce4-xkb-plugin-trunk. 1. Create a script /home/user/xfce4-xkb-plugin-trunk/panel-plugin/xfce4-xkb-plugin-gdb, which should contain the following: -- BEGIN SCRIPT -- #!/bin/sh gdb -ex r -ex bt -ex continue -ex q --args /home/user/xfce4-xkb-plugin-trunk/panel-plugin/xfce4-xkb-plugin $@ > $HOME/xkb-plugin-gdb.log 2>&1 -- END SCRIPT -- 2. Make the script executable: chmod +x /home/user/xfce4-xkb-plugin-trunk/panel-plugin/xfce4-xkb-plugin-gdb 3. Edit the X-XFCE-Exec line in xkb-plugin.desktop so that it contains: X-XFCE-Exec=/home/user/xfce4-xkb-plugin-trunk/panel-plugin/xfce4-xkb-plugin-gdb 4. Compile and install: make && make install 5. Add the plugin to the panel and make it crash 6. Grab the backtrace log from $HOME/xkb-plugin-gdb.log I think that should do it.
Well, I did it all since it's described in the wiki. Besides checking out svn I've downloaded the lastest source tarball xfce4-xkb-plugin-0.5.3.3.tar.gz And the only log I've got is one posted by me in the message before previous. But I think it isn't helpful much, as it contains very little info. Any suggestions?
Did you ./configure the plugin with --enable-debug switch?
Yes I did. Why the log is so weak?
What is the function name, which is called, when the "About" menu item selected? I could set a breakpoint to it and walk through until segfault.
The function is xfce_xkb_about (xfce4-xkb-plugin.c:660).
OK, I've traced till the moment of crashing. I hope this log will be helpful. $ gdb /usr/libexec/xfce4/panel-plugins/xfce4-xkb-plugin 17382 GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu"... Attaching to program: /usr/libexec/xfce4/panel-plugins/xfce4-xkb-plugin, process 17382 Reading symbols from /usr/lib/libxfce4panel.so.1...done. Loaded symbols for /usr/lib/libxfce4panel.so.1 Reading symbols from /usr/lib/libxfcegui4.so.4...done. Loaded symbols for /usr/lib/libxfcegui4.so.4 Reading symbols from /usr/lib/libxfce4util.so.4...done. Loaded symbols for /usr/lib/libxfce4util.so.4 Reading symbols from /usr/lib/libxklavier.so.12...done. Loaded symbols for /usr/lib/libxklavier.so.12 Reading symbols from /usr/lib/libxml2.so.2...done. Loaded symbols for /usr/lib/libxml2.so.2 Reading symbols from /usr/lib/libwnck-1.so.22...done. Loaded symbols for /usr/lib/libwnck-1.so.22 Reading symbols from /usr/lib/libgtk-x11-2.0.so.0...done. Loaded symbols for /usr/lib/libgtk-x11-2.0.so.0 Reading symbols from /usr/lib/libgdk-x11-2.0.so.0...done. Loaded symbols for /usr/lib/libgdk-x11-2.0.so.0 Reading symbols from /usr/lib/libatk-1.0.so.0...done. Loaded symbols for /usr/lib/libatk-1.0.so.0 Reading symbols from /usr/lib/libpangoft2-1.0.so.0...done. Loaded symbols for /usr/lib/libpangoft2-1.0.so.0 Reading symbols from /usr/lib/libpangocairo-1.0.so.0...done. Loaded symbols for /usr/lib/libpangocairo-1.0.so.0 Reading symbols from /usr/lib/libgio-2.0.so.0...done. Loaded symbols for /usr/lib/libgio-2.0.so.0 Reading symbols from /usr/lib/libpango-1.0.so.0...done. Loaded symbols for /usr/lib/libpango-1.0.so.0 Reading symbols from /usr/lib/librsvg-2.so.2...done. Loaded symbols for /usr/lib/librsvg-2.so.2 Reading symbols from /usr/lib/libgdk_pixbuf-2.0.so.0...done. Loaded symbols for /usr/lib/libgdk_pixbuf-2.0.so.0 Reading symbols from /usr/lib/libcairo.so.2...done. Loaded symbols for /usr/lib/libcairo.so.2 Reading symbols from /usr/lib/libpixman-1.so.0...done. Loaded symbols for /usr/lib/libpixman-1.so.0 Reading symbols from /usr/lib/libfreetype.so.6...done. Loaded symbols for /usr/lib/libfreetype.so.6 Reading symbols from /usr/lib/libfontconfig.so.1...done. Loaded symbols for /usr/lib/libfontconfig.so.1 Reading symbols from /usr/lib/libpng12.so.0...done. Loaded symbols for /usr/lib/libpng12.so.0 Reading symbols from /usr/lib/libxcb-render-util.so.0...done. Loaded symbols for /usr/lib/libxcb-render-util.so.0 Reading symbols from /usr/lib/libxcb-render.so.0...done. Loaded symbols for /usr/lib/libxcb-render.so.0 Reading symbols from /usr/lib/libxcb.so.1...done. Loaded symbols for /usr/lib/libxcb.so.1 Reading symbols from /usr/lib/libXrender.so.1...done. Loaded symbols for /usr/lib/libXrender.so.1 Reading symbols from /usr/lib/libX11.so.6...done. Loaded symbols for /usr/lib/libX11.so.6 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /lib/tls/i686/cmov/libm.so.6...done. Loaded symbols for /lib/tls/i686/cmov/libm.so.6 Reading symbols from /usr/lib/libgobject-2.0.so.0...done. Loaded symbols for /usr/lib/libgobject-2.0.so.0 Reading symbols from /usr/lib/libgmodule-2.0.so.0...done. Loaded symbols for /usr/lib/libgmodule-2.0.so.0 Reading symbols from /usr/lib/libglib-2.0.so.0...done. Loaded symbols for /usr/lib/libglib-2.0.so.0 Reading symbols from /lib/tls/i686/cmov/libc.so.6...done. Loaded symbols for /lib/tls/i686/cmov/libc.so.6 Reading symbols from /usr/lib/libSM.so.6...done. Loaded symbols for /usr/lib/libSM.so.6 Reading symbols from /usr/lib/libICE.so.6...done. Loaded symbols for /usr/lib/libICE.so.6 Reading symbols from /usr/lib/libstartup-notification-1.so.0...done. Loaded symbols for /usr/lib/libstartup-notification-1.so.0 Reading symbols from /usr/lib/libxkbfile.so.1...done. Loaded symbols for /usr/lib/libxkbfile.so.1 Reading symbols from /lib/tls/i686/cmov/libdl.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libdl.so.2 Reading symbols from /usr/lib/libXRes.so.1...done. Loaded symbols for /usr/lib/libXRes.so.1 Reading symbols from /usr/lib/libXcomposite.so.1...done. Loaded symbols for /usr/lib/libXcomposite.so.1 Reading symbols from /usr/lib/libXdamage.so.1...done. Loaded symbols for /usr/lib/libXdamage.so.1 Reading symbols from /usr/lib/libXfixes.so.3...done. Loaded symbols for /usr/lib/libXfixes.so.3 Reading symbols from /usr/lib/libXext.so.6...done. Loaded symbols for /usr/lib/libXext.so.6 Reading symbols from /usr/lib/libXinerama.so.1...done. Loaded symbols for /usr/lib/libXinerama.so.1 Reading symbols from /usr/lib/libXi.so.6...done. Loaded symbols for /usr/lib/libXi.so.6 Reading symbols from /usr/lib/libXrandr.so.2...done. Loaded symbols for /usr/lib/libXrandr.so.2 Reading symbols from /usr/lib/libXcursor.so.1...done. Loaded symbols for /usr/lib/libXcursor.so.1 Reading symbols from /lib/libselinux.so.1...done. Loaded symbols for /lib/libselinux.so.1 Reading symbols from /usr/lib/libgsf-1.so.114...done. Loaded symbols for /usr/lib/libgsf-1.so.114 Reading symbols from /usr/lib/libcroco-0.6.so.3...done. Loaded symbols for /usr/lib/libcroco-0.6.so.3 Reading symbols from /usr/lib/libexpat.so.1...done. Loaded symbols for /usr/lib/libexpat.so.1 Reading symbols from /usr/lib/libXau.so.6...done. Loaded symbols for /usr/lib/libXau.so.6 Reading symbols from /usr/lib/libXdmcp.so.6...done. Loaded symbols for /usr/lib/libXdmcp.so.6 Reading symbols from /usr/lib/libxcb-xlib.so.0...done. Loaded symbols for /usr/lib/libxcb-xlib.so.0 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/libpcre.so.3...done. Loaded symbols for /lib/libpcre.so.3 Reading symbols from /lib/libbz2.so.1.0...done. Loaded symbols for /lib/libbz2.so.1.0 Reading symbols from /lib/tls/i686/cmov/libpthread.so.0...done. [Thread debugging using libthread_db enabled] [New Thread 0xb71d1700 (LWP 17382)] Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0 Reading symbols from /lib/tls/i686/cmov/libnss_compat.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_compat.so.2 Reading symbols from /lib/tls/i686/cmov/libnsl.so.1...done. Loaded symbols for /lib/tls/i686/cmov/libnsl.so.1 Reading symbols from /lib/tls/i686/cmov/libnss_nis.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_nis.so.2 Reading symbols from /lib/tls/i686/cmov/libnss_files.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_files.so.2 Reading symbols from /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so...done. Loaded symbols for /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so Reading symbols from /usr/lib/pango/1.6.0/modules/pango-basic-fc.so...done. Loaded symbols for /usr/lib/pango/1.6.0/modules/pango-basic-fc.so Reading symbols from /usr/lib/libgthread-2.0.so.0...done. Loaded symbols for /usr/lib/libgthread-2.0.so.0 Reading symbols from /lib/tls/i686/cmov/librt.so.1...done. Loaded symbols for /lib/tls/i686/cmov/librt.so.1 Reading symbols from /lib/tls/i686/cmov/libutil.so.1...done. Loaded symbols for /lib/tls/i686/cmov/libutil.so.1 Reading symbols from /lib/libdbus-1.so.3...done. Loaded symbols for /lib/libdbus-1.so.3 Reading symbols from /usr/lib/libgvfscommon.so.0...done. Loaded symbols for /usr/lib/libgvfscommon.so.0 Reading symbols from /usr/lib/gio/modules/libgvfsdbus.so...done. Loaded symbols for /usr/lib/gio/modules/libgvfsdbus.so Reading symbols from /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so...done. Loaded symbols for /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so Reading symbols from /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so...done. Loaded symbols for /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so 0xb803d430 in __kernel_vsyscall () (gdb) b xfce_xkb_about Breakpoint 1 at 0x804d799: file xkb-settings-dialog.c, line 685. (gdb) c Continuing. [Switching to Thread 0xb71d1700 (LWP 17382)] Breakpoint 1, xfce_xkb_about (plugin=0x8883000) at xkb-settings-dialog.c:685 685 }; (gdb) l 680 GtkWidget *about; 681 const gchar* authors[2] = { 682 "Alexander Iliev <sasoiliev@mamul.org>", 683 "Gauvain Pocentek <gauvainpocentek@gmail.com>", 684 NULL 685 }; 686 687 about = gtk_about_dialog_new (); 688 gtk_about_dialog_set_name (GTK_ABOUT_DIALOG (about), 689 _("Keyboard Layouts Plugin")); (gdb) bt #0 xfce_xkb_about (plugin=0x8883000) at xkb-settings-dialog.c:685 #1 0xb759f3d4 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #2 0xb7591c4b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #3 0xb75a8095 in ?? () from /usr/lib/libgobject-2.0.so.0 #4 0xb75a97ac in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #5 0xb75a9c26 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #6 0xb8008a1a in ?? () from /usr/lib/libxfce4panel.so.1 #7 0xb759f3d4 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #8 0xb7591c4b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #9 0xb75a8095 in ?? () from /usr/lib/libgobject-2.0.so.0 #10 0xb75a97ac in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #11 0xb75a9c26 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #12 0xb7cbd477 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0 #13 0xb7baff70 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0 #14 0xb7bb1b4d in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #15 0xb7ba84fb in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #16 0xb7ba2036 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #17 0xb75903c9 in ?? () from /usr/lib/libgobject-2.0.so.0 #18 0xb7591c4b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #19 0xb75a7d3d in ?? () from /usr/lib/libgobject-2.0.so.0 #20 0xb75a962b in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #21 0xb75a9c26 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #22 0xb7cb733e in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #23 0xb7b9ab4c in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #24 0xb7b9bef7 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #25 0xb7a3250a in ?? () from /usr/lib/libgdk-x11-2.0.so.0 #26 0xb75046f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #27 0xb7507da3 in ?? () from /usr/lib/libglib-2.0.so.0 #28 0xb75082c2 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #29 0xb7b9c3a9 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #30 0x0804c77f in main (argc=143139216, argv=0x2) at xfce4-xkb-plugin.c:85 (gdb) n 687 about = gtk_about_dialog_new (); (gdb) n 688 gtk_about_dialog_set_name (GTK_ABOUT_DIALOG (about), (gdb) n 687 about = gtk_about_dialog_new (); (gdb) n 688 gtk_about_dialog_set_name (GTK_ABOUT_DIALOG (about), (gdb) n 690 gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (about), (gdb) n 692 gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about), (gdb) Program received signal SIGSEGV, Segmentation fault. 0xb73e42fb in strlen () from /lib/tls/i686/cmov/libc.so.6 (gdb)
Could you 'display authors' in gdb before the gtk_about_dialog_set_authors invocation?
I think the problem is not in variables. Maybe it is shared library related fault. $ gdb /usr/libexec/xfce4/panel-plugins/xfce4-xkb-plugin 17967 GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu"... Attaching to program: /usr/libexec/xfce4/panel-plugins/xfce4-xkb-plugin, process 17967 Reading symbols from /usr/lib/libxfce4panel.so.1...done. Loaded symbols for /usr/lib/libxfce4panel.so.1 Reading symbols from /usr/lib/libxfcegui4.so.4...done. Loaded symbols for /usr/lib/libxfcegui4.so.4 Reading symbols from /usr/lib/libxfce4util.so.4...done. Loaded symbols for /usr/lib/libxfce4util.so.4 Reading symbols from /usr/lib/libxklavier.so.12...done. Loaded symbols for /usr/lib/libxklavier.so.12 Reading symbols from /usr/lib/libxml2.so.2...done. Loaded symbols for /usr/lib/libxml2.so.2 Reading symbols from /usr/lib/libwnck-1.so.22...done. Loaded symbols for /usr/lib/libwnck-1.so.22 Reading symbols from /usr/lib/libgtk-x11-2.0.so.0...done. Loaded symbols for /usr/lib/libgtk-x11-2.0.so.0 Reading symbols from /usr/lib/libgdk-x11-2.0.so.0...done. Loaded symbols for /usr/lib/libgdk-x11-2.0.so.0 Reading symbols from /usr/lib/libatk-1.0.so.0...done. Loaded symbols for /usr/lib/libatk-1.0.so.0 Reading symbols from /usr/lib/libpangoft2-1.0.so.0...done. Loaded symbols for /usr/lib/libpangoft2-1.0.so.0 Reading symbols from /usr/lib/libpangocairo-1.0.so.0...done. Loaded symbols for /usr/lib/libpangocairo-1.0.so.0 Reading symbols from /usr/lib/libgio-2.0.so.0...done. Loaded symbols for /usr/lib/libgio-2.0.so.0 Reading symbols from /usr/lib/libpango-1.0.so.0...done. Loaded symbols for /usr/lib/libpango-1.0.so.0 Reading symbols from /usr/lib/librsvg-2.so.2...done. Loaded symbols for /usr/lib/librsvg-2.so.2 Reading symbols from /usr/lib/libgdk_pixbuf-2.0.so.0...done. Loaded symbols for /usr/lib/libgdk_pixbuf-2.0.so.0 Reading symbols from /usr/lib/libcairo.so.2...done. Loaded symbols for /usr/lib/libcairo.so.2 Reading symbols from /usr/lib/libpixman-1.so.0...done. Loaded symbols for /usr/lib/libpixman-1.so.0 Reading symbols from /usr/lib/libfreetype.so.6...done. Loaded symbols for /usr/lib/libfreetype.so.6 Reading symbols from /usr/lib/libfontconfig.so.1...done. Loaded symbols for /usr/lib/libfontconfig.so.1 Reading symbols from /usr/lib/libpng12.so.0...done. Loaded symbols for /usr/lib/libpng12.so.0 Reading symbols from /usr/lib/libxcb-render-util.so.0...done. Loaded symbols for /usr/lib/libxcb-render-util.so.0 Reading symbols from /usr/lib/libxcb-render.so.0...done. Loaded symbols for /usr/lib/libxcb-render.so.0 Reading symbols from /usr/lib/libxcb.so.1...done. Loaded symbols for /usr/lib/libxcb.so.1 Reading symbols from /usr/lib/libXrender.so.1...done. Loaded symbols for /usr/lib/libXrender.so.1 Reading symbols from /usr/lib/libX11.so.6...done. Loaded symbols for /usr/lib/libX11.so.6 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /lib/tls/i686/cmov/libm.so.6...done. Loaded symbols for /lib/tls/i686/cmov/libm.so.6 Reading symbols from /usr/lib/libgobject-2.0.so.0...done. Loaded symbols for /usr/lib/libgobject-2.0.so.0 Reading symbols from /usr/lib/libgmodule-2.0.so.0...done. Loaded symbols for /usr/lib/libgmodule-2.0.so.0 Reading symbols from /usr/lib/libglib-2.0.so.0...done. Loaded symbols for /usr/lib/libglib-2.0.so.0 Reading symbols from /lib/tls/i686/cmov/libc.so.6...done. Loaded symbols for /lib/tls/i686/cmov/libc.so.6 Reading symbols from /usr/lib/libSM.so.6...done. Loaded symbols for /usr/lib/libSM.so.6 Reading symbols from /usr/lib/libICE.so.6...done. Loaded symbols for /usr/lib/libICE.so.6 Reading symbols from /usr/lib/libstartup-notification-1.so.0...done. Loaded symbols for /usr/lib/libstartup-notification-1.so.0 Reading symbols from /usr/lib/libxkbfile.so.1...done. Loaded symbols for /usr/lib/libxkbfile.so.1 Reading symbols from /lib/tls/i686/cmov/libdl.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libdl.so.2 Reading symbols from /usr/lib/libXRes.so.1...done. Loaded symbols for /usr/lib/libXRes.so.1 Reading symbols from /usr/lib/libXcomposite.so.1...done. Loaded symbols for /usr/lib/libXcomposite.so.1 Reading symbols from /usr/lib/libXdamage.so.1...done. Loaded symbols for /usr/lib/libXdamage.so.1 Reading symbols from /usr/lib/libXfixes.so.3...done. Loaded symbols for /usr/lib/libXfixes.so.3 Reading symbols from /usr/lib/libXext.so.6...done. Loaded symbols for /usr/lib/libXext.so.6 Reading symbols from /usr/lib/libXinerama.so.1...done. Loaded symbols for /usr/lib/libXinerama.so.1 Reading symbols from /usr/lib/libXi.so.6...done. Loaded symbols for /usr/lib/libXi.so.6 Reading symbols from /usr/lib/libXrandr.so.2...done. Loaded symbols for /usr/lib/libXrandr.so.2 Reading symbols from /usr/lib/libXcursor.so.1...done. Loaded symbols for /usr/lib/libXcursor.so.1 Reading symbols from /lib/libselinux.so.1...done. Loaded symbols for /lib/libselinux.so.1 Reading symbols from /usr/lib/libgsf-1.so.114...done. Loaded symbols for /usr/lib/libgsf-1.so.114 Reading symbols from /usr/lib/libcroco-0.6.so.3...done. Loaded symbols for /usr/lib/libcroco-0.6.so.3 Reading symbols from /usr/lib/libexpat.so.1...done. Loaded symbols for /usr/lib/libexpat.so.1 Reading symbols from /usr/lib/libXau.so.6...done. Loaded symbols for /usr/lib/libXau.so.6 Reading symbols from /usr/lib/libXdmcp.so.6...done. Loaded symbols for /usr/lib/libXdmcp.so.6 Reading symbols from /usr/lib/libxcb-xlib.so.0...done. Loaded symbols for /usr/lib/libxcb-xlib.so.0 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/libpcre.so.3...done. Loaded symbols for /lib/libpcre.so.3 Reading symbols from /lib/libbz2.so.1.0...done. Loaded symbols for /lib/libbz2.so.1.0 Reading symbols from /lib/tls/i686/cmov/libpthread.so.0...done. [Thread debugging using libthread_db enabled] [New Thread 0xb710f700 (LWP 17967)] Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0 Reading symbols from /lib/tls/i686/cmov/libnss_compat.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_compat.so.2 Reading symbols from /lib/tls/i686/cmov/libnsl.so.1...done. Loaded symbols for /lib/tls/i686/cmov/libnsl.so.1 Reading symbols from /lib/tls/i686/cmov/libnss_nis.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_nis.so.2 Reading symbols from /lib/tls/i686/cmov/libnss_files.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libnss_files.so.2 Reading symbols from /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so...done. Loaded symbols for /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so Reading symbols from /usr/lib/pango/1.6.0/modules/pango-basic-fc.so...done. Loaded symbols for /usr/lib/pango/1.6.0/modules/pango-basic-fc.so Reading symbols from /usr/lib/libgthread-2.0.so.0...done. Loaded symbols for /usr/lib/libgthread-2.0.so.0 Reading symbols from /lib/tls/i686/cmov/librt.so.1...done. Loaded symbols for /lib/tls/i686/cmov/librt.so.1 Reading symbols from /lib/tls/i686/cmov/libutil.so.1...done. Loaded symbols for /lib/tls/i686/cmov/libutil.so.1 Reading symbols from /lib/libdbus-1.so.3...done. Loaded symbols for /lib/libdbus-1.so.3 Reading symbols from /usr/lib/libgvfscommon.so.0...done. Loaded symbols for /usr/lib/libgvfscommon.so.0 Reading symbols from /usr/lib/gio/modules/libgvfsdbus.so...done. Loaded symbols for /usr/lib/gio/modules/libgvfsdbus.so Reading symbols from /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so...done. Loaded symbols for /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so Reading symbols from /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so...done. Loaded symbols for /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so 0xb7f7b430 in __kernel_vsyscall () (gdb) b xfce_xkb_about Breakpoint 1 at 0x804d799: file xkb-settings-dialog.c, line 685. (gdb) c Continuing. [Switching to Thread 0xb710f700 (LWP 17967)] Breakpoint 1, xfce_xkb_about (plugin=0x8fed000) at xkb-settings-dialog.c:685 685 }; (gdb) n 687 about = gtk_about_dialog_new (); (gdb) display authors 1: authors = {0x8051768 "Alexander Iliev <sasoiliev@mamul.org>", 0x8051790 "Gauvain Pocentek <gauvainpocentek@gmail.com>"} (gdb) n 688 gtk_about_dialog_set_name (GTK_ABOUT_DIALOG (about), 1: authors = {0x8051768 "Alexander Iliev <sasoiliev@mamul.org>", 0x8051790 "Gauvain Pocentek <gauvainpocentek@gmail.com>"} (gdb) l 683 "Gauvain Pocentek <gauvainpocentek@gmail.com>", 684 NULL 685 }; 686 687 about = gtk_about_dialog_new (); 688 gtk_about_dialog_set_name (GTK_ABOUT_DIALOG (about), 689 _("Keyboard Layouts Plugin")); 690 gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (about), 691 NULL); 692 gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about), (gdb) n 687 about = gtk_about_dialog_new (); 1: authors = {0x8051768 "Alexander Iliev <sasoiliev@mamul.org>", 0x8051790 "Gauvain Pocentek <gauvainpocentek@gmail.com>"} (gdb) n 688 gtk_about_dialog_set_name (GTK_ABOUT_DIALOG (about), 1: authors = {0x8051768 "Alexander Iliev <sasoiliev@mamul.org>", 0x8051790 "Gauvain Pocentek <gauvainpocentek@gmail.com>"} (gdb) 690 gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (about), 1: authors = {0x8051768 "Alexander Iliev <sasoiliev@mamul.org>", 0x8051790 "Gauvain Pocentek <gauvainpocentek@gmail.com>"} (gdb) 692 gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about), 1: authors = {0x8051768 "Alexander Iliev <sasoiliev@mamul.org>", 0x8051790 "Gauvain Pocentek <gauvainpocentek@gmail.com>"} (gdb) bt #0 xfce_xkb_about (plugin=0x8fed000) at xkb-settings-dialog.c:692 #1 0xb74dd3d4 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #2 0xb74cfc4b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #3 0xb74e6095 in ?? () from /usr/lib/libgobject-2.0.so.0 #4 0xb74e77ac in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #5 0xb74e7c26 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #6 0xb7f46a1a in ?? () from /usr/lib/libxfce4panel.so.1 #7 0xb74dd3d4 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #8 0xb74cfc4b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #9 0xb74e6095 in ?? () from /usr/lib/libgobject-2.0.so.0 #10 0xb74e77ac in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #11 0xb74e7c26 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #12 0xb7bfb477 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0 #13 0xb7aedf70 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0 #14 0xb7aefb4d in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #15 0xb7ae64fb in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #16 0xb7ae0036 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #17 0xb74ce3c9 in ?? () from /usr/lib/libgobject-2.0.so.0 #18 0xb74cfc4b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #19 0xb74e5d3d in ?? () from /usr/lib/libgobject-2.0.so.0 #20 0xb74e762b in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #21 0xb74e7c26 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #22 0xb7bf533e in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #23 0xb7ad8b4c in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #24 0xb7ad9ef7 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #25 0xb797050a in ?? () from /usr/lib/libgdk-x11-2.0.so.0 #26 0xb74426f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #27 0xb7445da3 in ?? () from /usr/lib/libglib-2.0.so.0 #28 0xb74462c2 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #29 0xb7ada3a9 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #30 0x0804c77f in main (argc=150913424, argv=0x2) at xfce4-xkb-plugin.c:85 (gdb) l 687 about = gtk_about_dialog_new (); 688 gtk_about_dialog_set_name (GTK_ABOUT_DIALOG (about), 689 _("Keyboard Layouts Plugin")); 690 gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (about), 691 NULL); 692 gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about), 693 (const gchar**) authors); 694 gtk_about_dialog_set_comments (GTK_ABOUT_DIALOG (about), 695 _("Allows you to configure and use multiple keyboard layouts.")); 696 gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (about), (gdb) p authors $1 = {0x8051768 "Alexander Iliev <sasoiliev@mamul.org>", 0x8051790 "Gauvain Pocentek <gauvainpocentek@gmail.com>"} (gdb) p about $2 = (GtkWidget *) 0x8fd71e0 (gdb) n Program received signal SIGSEGV, Segmentation fault. 0xb73222fb in strlen () from /lib/tls/i686/cmov/libc.so.6 (gdb) q The program is running. Quit anyway (and detach it)? (y or n) y Detaching from program: /usr/libexec/xfce4/panel-plugins/xfce4-xkb-plugin, process 17967 Maybe library version is incorrect: $ file /lib/tls/i686/cmov/libc.so.6 /lib/tls/i686/cmov/libc.so.6: symbolic link to `libc-2.8.90.so' $ file /lib/tls/i686/cmov/libc-2.8.90.so /lib/tls/i686/cmov/libc-2.8.90.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped $ objdump -T /lib/tls/i686/cmov/libc-2.8.90.so |grep strlen 000772f0 g DF .text 000000af GLIBC_2.0 strlen 0007cab0 g DF .text 00000017 GLIBC_2.1.1 __strlen_g
Yes! I've found it. The problem is the incorrect array dimension. I'm attaching a proposed patch. Please, review it.
Created attachment 2244 Proposed patch to fix the problem
Test passed successfully
Committed in r6952, thanks. :)