! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
xkb plugin crashes on "about plugin" invoking
Status:
RESOLVED: FIXED
Product:
Xfce4-xkb-plugin
Component:
General

Comments

Description Alexander Fomichev 2009-03-10 23:20:32 CET
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.
Comment 1 Alexander Iliev 2009-03-11 05:52:08 CET
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.
Comment 2 Alexander Fomichev 2009-03-11 19:15:20 CET
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).
Comment 3 Alexander Fomichev 2009-03-11 19:17:28 CET
Created attachment 2228 
My current settings (screenshot)
Comment 4 Alexander Iliev 2009-03-11 21:55:36 CET
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?
Comment 5 Alexander Fomichev 2009-03-13 22:26:14 CET
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.
Comment 6 Alexander Iliev 2009-03-13 23:37:38 CET
I'll appreciate a full backtrace, if you need assistance on debugging feel free to ask.

Thanks
Comment 7 Alexander Fomichev 2009-03-14 12:22:47 CET
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?
Comment 8 Alexander Iliev 2009-03-14 12:49:49 CET
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.
Comment 9 Alexander Fomichev 2009-03-14 13:10:11 CET
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?
Comment 10 Alexander Iliev 2009-03-14 13:12:15 CET
Did you ./configure the plugin with --enable-debug switch?
Comment 11 Alexander Fomichev 2009-03-14 19:24:55 CET
Yes I did.
Why the log is so weak?
Comment 12 Alexander Fomichev 2009-03-14 19:31:31 CET
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.
Comment 13 Alexander Iliev 2009-03-15 10:06:05 CET
The function is xfce_xkb_about (xfce4-xkb-plugin.c:660).
Comment 14 Alexander Fomichev 2009-03-15 13:13:14 CET
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)
Comment 15 Alexander Iliev 2009-03-15 15:57:57 CET
Could you 'display authors' in gdb before the gtk_about_dialog_set_authors invocation?
Comment 16 Alexander Fomichev 2009-03-15 22:02:00 CET
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
Comment 17 Alexander Fomichev 2009-03-19 20:25:04 CET
Yes! I've found it. The problem is the incorrect array dimension. I'm attaching a proposed patch.

Please, review it.
Comment 18 Alexander Fomichev 2009-03-19 20:26:56 CET
Created attachment 2244 
Proposed patch to fix the problem
Comment 19 Alexander Fomichev 2009-03-19 20:28:44 CET
Test passed successfully
Comment 20 Alexander Iliev 2009-03-19 20:59:58 CET
Committed in r6952, thanks. :)

Bug #5083

Reported by:
Alexander Fomichev
Reported on: 2009-03-10
Last modified on: 2009-07-15

People

Assignee:
Alexander Iliev
CC List:
0 users

Version

Version:
unspecified

Attachments

My current settings (screenshot) (46.68 KB, image/png)
2009-03-11 19:17 CET , Alexander Fomichev
no flags
Proposed patch to fix the problem (616 bytes, patch)
2009-03-19 20:26 CET , Alexander Fomichev
no flags

Additional information