On Fri, 08 Dec 2006 08:05:56 +0100 Jan Djärv <[EMAIL PROTECTED]> wrote:
> Stephen Berman skrev: >> >> Well, now I can get GTK-Emacs to segfault again :-). I noticed that >> the desktop fonts didn't look as sharp as they normally do (it took me >> a while to notice this, probably because the fonts in Emacs are always >> not so sharp :-), so I ran fc-cache, exited KDE and logged on again. >> Now my desktop fonts are back to their previous sharpness, but >> Emacs-GTK segfaults again with the standard invocation (but I can >> start it by setting LD_LIBRARY_PATH to /usr/local/lib). So if someone >> is able to advise me how to debug this, I can try to do it. >> > > It is hard if Emacs doesn't fail with the debug-compiled fontconfig. > Does wxGTK install fonts? No, AFAICT (and a wxwidget developer told me it does not alter pango or fontconfig). > The cache handling seems to have some bug > in it. As it only fails sometimes it might be that the code that > builds or reads the cache have some uninitialized variable that gets > random garbage. Sometimes that garbage is OK, sometimes it isn't. This may well be the case, as I'm getting rather unpredictable behavior. The next time I started GTK-Emacs (without setting LD_LIBRARY_PATH to /usr/local/lib) after writing the above, it came up fine, no segfault. Then I updated the Nvidia-driver for my graphic card, and the next time I booted and started Emacs (last night), the GTK build segfaulted again. But this time, it also segfaulted even after setting LD_LIBRARY_PATH to /usr/local/lib, i.e., I could not started the GTK build at all (neither the CVS nor first pretest builds; the Lucid build was as usual unaffected). Fortunately, this time the gdb full backtrace (appended to the end of this post) includes values from the fontconfig source, though lots are optimized out; still perhaps you can get some useful information out of it. BTW, notice that this backtrace is quite different from the one I originally sent (and had gotten on every previous segfault). A further datapoint: When I booted SUSE 10.1 this morning, X started and the kdm login screen came up, but I could not start any desktop (I tried KDE several times, Gnome, and FVWM), restarting X didn't help. Then I noticed that ~/.fonts.cache-2 was again very large, ~1.8MB, and the timestamp was from just after booting. I deleted this file, ran fc-cache as root, went back to the kdm screen, and could start KDE as usual. I then invoked Emacs-GTK, and it started without a problem! > If you rebuild the cache several times with the same fontconfig, are > the ~/.fonts.cache-2 then identical? And are they different if you > rebuild with the fontconfig you compiled? After running fc-cache again this morning, ~/.fonts.cache-2 was not recreated. This was with /usr/local/bin/fc-cache, i.e., the one I compiled. I haven't tried again with /usr/bin/fc-cache, as I'm a little afraid of the consequences, given what I described above. If (or when) I have problems again with Emacs starting, I'll try to do both and compare. > Does any other Gnome/GTK > application fail when Emacs fails or is it just Emacs? I've only had problems with Emacs. I mostly use KDE, but aside from Emacs, no other GTK application I use (mostly Firefox and several games, Eclipse, Gimp) has segfaulted AFAICR, at least not the way Emacs has been doing, right on startup, since I first installed wxGTK. (There are at least two other issues I've had with GTK-Emacs that I've not had with any other GTK application, but they have to do specifically with KDE and not with wxGTK or fonts, so I assume they are not related to this problem, except (and that in itself is perhaps significant) for being restricted to Emacs.) Steve Berman _______________________________________________ Here's the backtrace from last night's segfault: [EMAIL PROTECTED]:/users/steve/cvsroot/emacs/src> gdb emacs GNU gdb 6.4 Copyright 2005 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i586-suse-linux"...Using host libthread_db library "/lib/libthread_db.so.1". DISPLAY = :0 TERM = xterm Breakpoint 1 at 0x80f2e26: file emacs.c, line 449. Breakpoint 2 at 0x810bd66: file sysdep.c, line 1385. (gdb) r Starting program: /users/steve/cvsroot/emacs/src/emacs -geometry 80x40+0+0 [Thread debugging using libthread_db enabled] [New Thread -1220639056 (LWP 6024)] [Switching to Thread -1220639056 (LWP 6024)] Breakpoint 3 at 0x80c82e6: file xterm.c, line 7833. Program received signal SIGSEGV, Segmentation fault. 0xb79c3e24 in FcPatternPosition (p=0xb68f9004, object=<value optimized out>) at fcint.h:828 828 return a - b; (gdb) bt full #0 0xb79c3e24 in FcPatternPosition (p=0xb68f9004, object=<value optimized out>) at fcint.h:828 low = 0 high = 17 mid = 8 c = <value optimized out> obj = 21 #1 0xb79c3e87 in FcPatternFindElt (p=0xb68f9004, object=0xb79d7491 "file") at fcpat.c:725 i = -1219047104 #2 0xb79c5536 in FcPatternGet (p=0xb68f9004, object=0xb79d7491 "file", id=0, v=0xbffe1330) at fcpat.c:1107 e = <value optimized out> l = <value optimized out> #3 0xb79c58ba in FcPatternGetString (p=0xb68f9004, object=0xb79d7491 "file", id=0, s=0xbffe1398) at fcpat.c:1172 v = { type = 140255896, u = { s = 0x85e92a8 "/usr/X11R6/lib/X11/fonts/misc/cu12.pcf.gz", s_off = 140415656, i = 140415656, b = 140415656, d = -1.8797073676043201, m = 0x85e92a8, c = 0x85e92a8, c_off = 140415656, f = 0x85e92a8, p = 0x85e92a8, l = 0x85e92a8, l_off = 140415656 } } r = <value optimized out> #4 0xb79b35da in FcConfigBuildFonts (config=0x85c2298) at fccfg.c:314 cfn = (FcChar8 *) 0x85e92a8 "/usr/X11R6/lib/X11/fonts/misc/cu12.pcf.gz" fonts = (FcFontSet *) 0x85c5f38 cached_fonts = (FcFontSet *) 0x85cd988 cache = (FcGlobalCache *) 0x85c5ee0 ---Type <return> to continue, or q <return> to quit--- list = <value optimized out> oldDirs = (FcStrSet *) 0x85c7e30 dir = <value optimized out> #5 0xb79bbf7f in FcInitLoadConfigAndFonts () at fcinit.c:85 config = (FcConfig *) 0x85c2298 #6 0xb79bc085 in FcInit () at fcinit.c:103 config = <value optimized out> #7 0xb6a94d0b in XftInit () from /usr/X11R6/lib/libXft.so.2 No symbol table info available. #8 0xb6d5a39a in qt_init_internal () from /usr/lib/qt3/lib/libqt-mt.so.3 No symbol table info available. #9 0xb6d5b08b in qt_init () from /usr/lib/qt3/lib/libqt-mt.so.3 No symbol table info available. #10 0xb6dc1ee3 in QApplication::QApplication () from /usr/lib/qt3/lib/libqt-mt.so.3 No symbol table info available. #11 0xb72d2155 in createQApp () from /opt/gnome/lib/gtk-2.0/2.4.0/engines/libqtengine.so No symbol table info available. #12 0xb72c4e3f in theme_init () from /opt/gnome/lib/gtk-2.0/2.4.0/engines/libqtengine.so No symbol table info available. #13 0xb7da0a66 in gtk_theme_engine_get () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #14 0xb7a7aeb8 in g_type_module_use () from /opt/gnome/lib/libgobject-2.0.so.0 No symbol table info available. #15 0xb7da0899 in gtk_theme_engine_get () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #16 0xb7d3ace8 in gtk_rc_get_im_module_path () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #17 0xb7d3b27e in gtk_rc_get_im_module_path () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #18 0xb7d3b7d9 in gtk_rc_get_im_module_path () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #19 0xb7d3b98d in gtk_rc_get_im_module_path () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #20 0xb7d3b63a in gtk_rc_get_im_module_path () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #21 0xb7d3b7d9 in gtk_rc_get_im_module_path () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #22 0xb7d3b98d in gtk_rc_get_im_module_path () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #23 0xb7d3bde4 in gtk_rc_reparse_all_for_settings () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #24 0xb7d488c3 in gtk_settings_get_for_screen () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #25 0xb7d48985 in gtk_settings_get_default () from /opt/gnome/lib/libgtk-x11-2.0.so.0 No symbol table info available. #26 0x080ebf95 in xg_initialize () at gtkutil.c:3910 binding_set = <value optimized out> #27 0x080c66b5 in x_term_init (display_name=140082411, xrm_option=0x0, resource_name=0x8593a80 "emacs") at xterm.c:10435 value = <value optimized out> connection = <value optimized out> dpy = <value optimized out> dpyinfo = <value optimized out> xrdb = <value optimized out> #28 0x080d1e41 in Fx_open_connection (display=140082411, xrm_string=137455817, must_succeed=137455865) at xfns.c:4071 dpyinfo = <value optimized out> #29 0x08159a5a in Ffuncall (nargs=4, args=0xbffe1d50) at eval.c:3003 fun = <value optimized out> original_fun = 137668761 funcar = <value optimized out> numargs = 3 val = <value optimized out> ---Type <return> to continue, or q <return> to quit--- backtrace = { next = 0xbffe1e20, function = 0xbffe1d50, args = 0xbffe1d54, nargs = 3, evalargs = 0 '\0', debug_on_exit = 0 '\0' } internal_args = (Lisp_Object *) 0xbffe1d54 i = <value optimized out> #30 0x081842e7 in Fbyte_code (bytestr=140082059, vector=140083988, maxdepth=48) at bytecode.c:679 v1 = <value optimized out> v2 = <value optimized out> op = 8 vectorp = (Lisp_Object *) 0x8598318 stack = { pc = 0x8593841 "\210\320\025\321 \322\245\323Z\0165^\0265\324 \210\325\0166\317\"\210\326 \210\327\0167\236A\206[", top = 0xbffe1d5c, bottom = 0xbffe1d50, byte_string = 140082059, byte_string_start = 0x8593814 "\306\b!\020\t;\204 ", constants = 140083988, next = 0xbffe22d0 } top = <value optimized out> result = <value optimized out> #31 0x08158f83 in Feval (form=139021517) at eval.c:2334 numargs = <value optimized out> argvals = {140082059, 140083988, 48, 135728864, 0, 137455817, -1073865144, 135721953} args_left = 137455817 i = 3 fun = <value optimized out> val = <value optimized out> original_fun = 137549969 original_args = 139021645 funcar = <value optimized out> ---Type <return> to continue, or q <return> to quit--- backtrace = { next = 0xbffe2258, function = 0xbffe1e38, args = 0xbffe1e00, nargs = 3, evalargs = 1 '\001', debug_on_exit = 0 '\0' } #32 0x08171729 in readevalloop (readcharfun=137521369, stream=0x8578030, sourcename=139979219, evalfun=0x8158bc0 <Feval>, printflag=0, unibyte=137455817, readfun=137455817, start=137455817, end=137455817) at lread.c:1528 c = <value optimized out> val = 139021517 b = (struct buffer *) 0x0 continue_reading_p = 1 whole_buffer = 0 first_sexp = 0 #33 0x08172c90 in Fload (file=140052195, noerror=137455817, nomessage=137455865, nosuffix=137455817, must_suffix=137455817) at lread.c:998 val = <value optimized out> stream = (FILE *) 0x8578030 fd = 6 found = 139978187 efound = <value optimized out> hist_file_name = 139978187 newer = 0 compiled = 1 handler = <value optimized out> safe_p = 1 tmp = {139020453, 138191461} #34 0x08159aaf in Ffuncall (nargs=4, args=0xbffe2290) at eval.c:3011 fun = <value optimized out> original_fun = 5 funcar = <value optimized out> numargs = 3 val = <value optimized out> backtrace = { ---Type <return> to continue, or q <return> to quit--- next = 0xbffe2350, function = 0xbffe2290, args = 0xbffe2294, nargs = 3, evalargs = 0 '\0', debug_on_exit = 0 '\0' } internal_args = (Lisp_Object *) 0xbffe2210 i = <value optimized out> #35 0x081842e7 in Fbyte_code (bytestr=136583987, vector=136584012, maxdepth=32) at bytecode.c:679 v1 = <value optimized out> v2 = <value optimized out> op = 8 vectorp = (Lisp_Object *) 0x8241b50 stack = { pc = 0x82786d8 "\210\306\207", top = 0xbffe229c, bottom = 0xbffe2290, byte_string = 136583987, byte_string_start = 0x82786c6 "\b\203\023", constants = 136584012, next = 0xbffe24e0 } top = <value optimized out> result = <value optimized out> #36 0x08158f83 in Feval (form=136583973) at eval.c:2334 numargs = <value optimized out> argvals = {136583987, 136584012, 32, 135575154, 137543633, 137092210, 137455817, 137092228} args_left = 137455817 i = 3 fun = <value optimized out> val = <value optimized out> original_fun = 137549969 original_args = 136583981 funcar = <value optimized out> backtrace = { next = 0xbffe2588, ---Type <return> to continue, or q <return> to quit--- function = 0xbffe2368, args = 0xbffe2330, nargs = 3, evalargs = 1 '\001', debug_on_exit = 0 '\0' } #37 0x0815b57f in internal_lisp_condition_case (var=137500497, bodyform=136583973, handlers=136584077) at eval.c:1426 val = <value optimized out> c = { tag = 137455817, val = 137455817, next = 0xbffe275c, gcpro = 0x0, jmp = {{ __jmpbuf = {137455817, -1073863536, 81, -1073863560, -710222492, 1648446013}, __mask_was_saved = 0, __saved_mask = { __val = {136113076, 137455817, 136113016, 136113048, 1, 3221103640, 135632099, 64, 137455817, 32, 3221103764, 136113020, 4, 137781400, 4, 1, 0, 0, 136113020, 137851681, 1, 3221103736, 135633105, 140050433, 136167349, 137549969, 136167328, 136167333, 137693064, 3221103688, 137576842, 137576840} } }}, backlist = 0xbffe2588, handlerlist = 0xbffe2824, lisp_eval_depth = 2, pdlcount = 4, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0xbffe24e0 } h = { handler = 136584077, var = 137500497, chosen_clause = 137455817, tag = 0xbffe2398, ---Type <return> to continue, or q <return> to quit--- next = 0xbffe2824 } #38 0x081835c5 in Fbyte_code (bytestr=136582811, vector=136582828, maxdepth=56) at bytecode.c:869 handlers = <value optimized out> body = 8 op = 1953719668 vectorp = (Lisp_Object *) 0x82416b0 stack = { pc = 0x8278763 "\210\334 \204l", top = 0xbffe2490, bottom = 0xbffe2490, byte_string = 136582811, byte_string_start = 0x8278708 "\b\021\306\307!\210\306\310!\210\306\311!\210\312\313!\211\032\314=\2046", constants = 136582828, next = 0xbffe2610 } top = (Lisp_Object *) 0xbffe2490 result = <value optimized out> #39 0x081594ca in funcall_lambda (fun=136582788, nargs=0, arg_vector=0xbffe25c4) at eval.c:3184 val = <value optimized out> syms_left = <value optimized out> next = <value optimized out> i = 0 optional = 0 rest = 0 #40 0x081598d1 in Ffuncall (nargs=1, args=0xbffe25c0) at eval.c:3054 fun = 136582788 original_fun = 139727761 funcar = <value optimized out> numargs = 0 val = <value optimized out> backtrace = { next = 0xbffe2710, function = 0xbffe25c0, args = 0xbffe25c4, nargs = 0, ---Type <return> to continue, or q <return> to quit--- evalargs = 0 '\0', debug_on_exit = 0 '\0' } internal_args = (Lisp_Object *) 0xbffe25c4 i = <value optimized out> #41 0x081842e7 in Fbyte_code (bytestr=136579731, vector=136579748, maxdepth=48) at bytecode.c:679 v1 = <value optimized out> v2 = <value optimized out> op = 8 vectorp = (Lisp_Object *) 0x8240aa8 stack = { pc = 0x82793b1 "*\207", top = 0xbffe25c0, bottom = 0xbffe25c0, byte_string = 136579731, byte_string_start = 0x8279327 "\b\203\b", constants = 136579748, next = 0x0 } top = <value optimized out> result = <value optimized out> #42 0x081594ca in funcall_lambda (fun=136579708, nargs=0, arg_vector=0xbffe2690) at eval.c:3184 val = <value optimized out> syms_left = <value optimized out> next = <value optimized out> i = 0 optional = -1219801291 rest = 139902472 #43 0x081596be in apply_lambda (fun=136579708, args=137455817, eval_flag=1) at eval.c:3108 args_left = 136579704 arg_vector = (Lisp_Object *) 0x74736574 i = 0 tem = 137455817 #44 0x08158da2 in Feval (form=139258597) at eval.c:2370 fun = 1953719668 val = <value optimized out> ---Type <return> to continue, or q <return> to quit--- original_fun = 139747361 original_args = 137455817 funcar = 8 backtrace = { next = 0x0, function = 0xbffe2728, args = 0xbffe2690, nargs = 0, evalargs = 0 '\0', debug_on_exit = 0 '\0' } #45 0x080fa483 in top_level_2 () at keyboard.c:1335 No locals. #46 0x08158512 in internal_condition_case (bfun=0x80fa470 <top_level_2>, handlers=137500497, hfun=0x80fd880 <cmd_error>) at eval.c:1481 val = <value optimized out> c = { tag = 137455817, val = 137455817, next = 0xbffe2870, gcpro = 0x0, jmp = {{ __jmpbuf = {0, 137781416, 137781400, -1073862600, -710223436, 1648458277}, __mask_was_saved = 0, __saved_mask = { __val = {1, 268435456, 3221104788, 0, 0, 0, 0, 0, 3221104688, 3085985496, 134540179, 110932256, 16777216, 0 <repeats 14 times>, 3074797548, 3075932160, 3085983732, 134527796, 3085985496} } }}, backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0 } ---Type <return> to continue, or q <return> to quit--- h = { handler = 137500497, var = 137455817, chosen_clause = 136008808, tag = 0xbffe275c, next = 0x0 } #47 0x080fcbe0 in top_level_1 () at keyboard.c:1343 No locals. #48 0x081585ca in internal_catch (tag=137496705, func=0x80fcbb0 <top_level_1>, arg=137455817) at eval.c:1222 c = { tag = 137496705, val = 137455817, next = 0x0, gcpro = 0x0, jmp = {{ __jmpbuf = {0, 137781416, 137781400, -1073862344, -710224252, 1648458585}, __mask_was_saved = 0, __saved_mask = { __val = {14, 0, 139842507, 22, 22, 3221104504, 135547292, 139842504, 22, 22, 22, 3221104788, 4294967295, 3221104520, 135547461, 139842504, 137639970, 137639968, 137639352, 3221104920, 135573100, 137639353, 137639970, 137455817, 137487680, 137455841, 2, 0, 137639352, 137639353, 137455817, 3221104984} } }}, backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0 } #49 0x080fd699 in command_loop () at keyboard.c:1300 No locals. #50 0x080fda5a in recursive_edit_1 () at keyboard.c:1003 ---Type <return> to continue, or q <return> to quit--- val = <value optimized out> #51 0x080fdb47 in Frecursive_edit () at keyboard.c:1064 buffer = <value optimized out> #52 0x080f3bbb in main (argc=3, argv=0xbffe2dc4) at emacs.c:1779 tz = 0x0 dummy = -1073861320 stack_bottom_variable = 8 '\b' do_initial_setlocale = 1 skip_args = 0 rlim = { rlim_cur = 8388608, rlim_max = 18446744073709551615 } no_loadup = 0 junk = 0x0 Lisp Backtrace: "x-open-connection" (0x8597ceb) "byte-code" (0x8597b8b) "load" (0x85906e3) "byte-code" (0x8241b33) "command-line" (0x85601d3) "normal-top-level" (0x83168c9) _______________________________________________ emacs-pretest-bug mailing list emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug