(gdb) run Starting program: /usr2/local/bin/xfdesktop TRACE[xfce-desktop.c:263] backdrop_changed_cb(): dummy TRACE[desktop-menu-file.c:698] desktop_menu_file_need_update(): dummy TRACE[desktop-menu-dentry.c:560] desktop_menu_dentry_parse_files(): base: / Program received signal SIGSEGV, Segmentation fault. append_escaped_text (str=0x8079a04, text=0x82565a0 "Ğɋ", length=8) at gmarkup.c:1812 1812 next = g_utf8_next_char (p);
i need a full backtrace from that. after it segfaults in gdb, please type "bt" and press enter.
Hmm... I had some looking around and found a way around.. Disabling the system menu in .config/xfce4/desktop/menu.xml appears to do the trick... So I suppose the bug is in that system-menu.. Perhaps already a known-issue?
since i wrote the system menu, if it were a known issue, i'd know about it ^_~. please get me a backtrace. "disable the system menu" is not an acceptable workaround for 4.2-final.
Here's the backtrace, I hope it's helpful :) (gdb) bt #0 append_escaped_text (str=0x805fd6c, text=0x823de28 "Ğɋ", length=8) at gmarkup.c:1812 #1 0x40569fc0 in g_markup_escape_text (text=0x823de28 "Ğɋ", length=8) at gmarkup.c:1873 #2 0x40c03e25 in desktop_menu_cache_add_entry (type=DM_TYPE_APP, name=0x823de28 "Ğɋ", cmd=0x823ba48 "kdbg", icon=0x823b910 "kdbg", needs_term=134610284, snotify=134610284, parent_menu=0x40c62008, position=4, menu_widget=0x0) at desktop-menu-cache.c:307 #3 0x40c06b4c in menu_dentry_parse_dentry (desktop_menu=0x809f400, de=0x8239a68, pathtype=MPATH_SIMPLE_UNIQUE, is_legacy=0, extra_cat=0x0) at desktop-menu-dentry.c:374 #4 0x40c06e43 in menu_dentry_parse_dentry_file (desktop_menu=0x809f400, filename=0x823b838 "/usr/share/applications/kde-kdbg.desktop", pathtype=MPATH_SIMPLE_UNIQUE) at desktop-menu-dentry.c:449 #5 0x40c06f57 in dentry_recurse_dir (dir=0x81f5a28, path=0x80b3e78 "/usr/share/applications/", desktop_menu=0x809f400, pathtype=MPATH_SIMPLE_UNIQUE) at desktop-menu-dentry.c:467 #6 0x40c07375 in desktop_menu_dentry_parse_files (desktop_menu=0x809f400, pathtype=MPATH_SIMPLE_UNIQUE, do_legacy=1) at desktop-menu-dentry.c:608 #7 0x40c053d8 in menu_file_xml_start (context=0x80ab178, element_name=0x80b3350 "include", attribute_names=0x80ab1f0, attribute_values=0x80ab298, user_data=0xbfffeda0, error=0xbfffed10) at desktop-menu-file.c:525 ---Type <return> to continue, or q <return> to quit--- #8 0x40569342 in g_markup_parse_context_parse (context=0x80ab178, text=0x80ab1f0 "0\212\032\b(\020\bp2\v\b", text_len=134951760, error=0xbfffed9c) at gmarkup.c:1255 #9 0x40c05c26 in desktop_menu_file_parse (desktop_menu=0x809f400, filename=0x80a76b8 "/home/proycon/.config/xfce4/desktop/menu.xml", menu=0x80aaa68, cur_path=0x40c097c6 "/", is_root=1, from_cache=0) at desktop-menu-file.c:634 #10 0x40c02ce9 in _generate_menu (desktop_menu=0x809f400, force=0) at desktop-menu.c:128 #11 0x40c02ec3 in _generate_menu_initial (data=0x809f400) at desktop-menu.c:209 #12 0x40567984 in g_idle_dispatch (source=0x80a7760, callback=0x805fd6c, user_data=0x809f400) at gmain.c:3803 #13 0x40564ce7 in g_main_dispatch (context=0x806fd48) at gmain.c:1943 #14 0x40565d41 in g_main_context_dispatch (context=0x806fd48) at gmain.c:2493 #15 0x4056606b in g_main_context_iterate (context=0x806fd48, block=1, dispatch=1, self=0x8085020) at gmain.c:2574 #16 0x405665ee in g_main_loop_run (loop=0x80a6e28) at gmain.c:2778 #17 0x40176da7 in gtk_main () at gtkmain.c:1172 #18 0x0804cd4e in main (argc=1, argv=0xbffff894) at main.c:352 #19 0x405d14ad in __libc_start_main () from /lib/libc.so.6
very useful, but unfortunately not too enlightening. i'm not sure why that would cause it to crash. unless... hmm, i suppose it's possible that the value being passed to the escape function isn't valid utf8; i would hope that wouldn't cause glib to crash, but it's possible. can you please attach your /usr/share/applications/kde-kdbg.desktop file here? attach it using the "create a new attachment" link above the comments box; if you paste it here, the character encoding will likely get screwed up. also, what's your glib version? running: pkg-config --modversion glib-2.0 should tell you.
also, are you running xfce in another language (i.e., is the LANG variable set)? if so, which language?
Created attachment 78 my faulty /usr/share/applications/kde-kdbg.desktop my locale is indeed set to another language (russian), and the string seems to be indeed malformed in this file!
i committed a change that first validates the utf8 name strings, and leaves out the item if it doesn't validate. update both libxfcegui4 and xfdesktop from CVS to give it a try (after the usual hour delay for anoncvs). if you wouldn't mind, still post that .desktop file and tell me what language you're using, even if it works. if you run xfdesktop from a terminal, it should print out a warning if it encounters a file that has invalid utf8. if that's the case, you should report the error to whomever maintains the app that the .desktop file belongs to. i'm relatively sure this will do the trick, so i'm marking FIXED. go ahead and REOPEN it if it's not; otherwise please mark it VERIFIED. thanks! (p.s. looks like we collided in mid-post; i'm now even more convinced this is the proper fix...)
Created attachment 79 fix-utf8-crash.diff here's a patch that contains the fixes, if you don't want to wait for anoncvs to update. apply in the 'xfce4' directory with "patch -p0 < fix-utf8-crash.diff"