emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GTK build crashes under X


From: Stephen Berman
Subject: Re: GTK build crashes under X
Date: Mon, 11 Dec 2006 13:38:43 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.91 (gnu/linux)

On Fri, 08 Dec 2006 08:05:56 +0100 Jan Djärv <address@hidden> 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:

address@hidden:/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)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]