- Package:
- xemacs21-mule
- Source:
- xemacs21
- Description:
- highly customizable text editor -- Mule binary
- Submitter:
- Nick Lewycky
- Date:
- 2013-10-13 10:10:16 UTC
- Severity:
- important
xemacs crashes immedately on start before showing any window. There's
nothing funny in the directory I'm running it from, nor am I missing xfs
or xfonts-{75|100}dpi. I don't have any workaround for this problem.
$ xemacs
Warning: Missing charsets in String to FontSet conversion
Warning: Cannot convert string
"-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*,
-*-*-*-*-*-*-*-120-*-iso10646-1,
-*-*-*-*-*-*-*-120-*-jisx0208.1983-0,
-*-*-*-*-*-*-*-120-*-jisx0201.1976-0" to type FontSet
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Fatal error (11).
Your files have been auto-saved.
Use `M-x recover-session' to recover them.
[snip a few paragraphs of generic error text]
Lisp backtrace follows:
# bind (frame-being-created)
make-frame(nil #<x-device on ":0.0" 0xb1a>)
frame-initialize()
# bind (debugger debug-on-error command-line-args-left)
command-line()
# (condition-case ... . ((t (byte-code " ��" ... 1))))
# bind (error-data)
normal-top-level()
# (condition-case ... . error)
# (catch top-level ...)
Segmentation fault
$
In xlsfonts, I can select
"-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*" no problem.
(gdb) run
Starting program: /usr/bin/xemacs
warning: Lowest section in system-supplied DSO at 0xffffe000 is .hash at
ffffe0b4
(no debugging symbols found)
(no debugging symbols found)
[snip more of the same]
Warning: Missing charsets in String to FontSet conversion
Warning: Cannot convert string
"-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*,
-*-*-*-*-*-*-*-120-*-iso10646-1,
-*-*-*-*-*-*-*-120-*-jisx0208.1983-0,
-*-*-*-*-*-*-*-120-*-jisx0201.1976-0" to type FontSet
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
---Type <return> to continue, or q <return> to quit---
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1438773728 (LWP 18391)]
0x557483c9 in XFontsOfFontSet () from /usr/lib/libX11.so.6
(gdb) bt
#0 0x557483c9 in XFontsOfFontSet () from /usr/lib/libX11.so.6
#1 0x081f4094 in xlw_set_item ()
#2 0x556e3df8 in XtInitializeWidgetClass () from /usr/lib/libXt.so.6
#3 0x556e437d in XtInitializeWidgetClass () from /usr/lib/libXt.so.6
#4 0x556e47e3 in _XtCreateWidget () from /usr/lib/libXt.so.6
#5 0x556e4a70 in XtCreateWidget () from /usr/lib/libXt.so.6
#6 0x081f90f6 in XawGaugeSetValue ()
#7 0x081eda9d in lw_make_widget ()
#8 0x080d4ee7 in vars_of_menubar_x ()
#9 0x081c8839 in Fx_window_id ()
#10 0x0813053b in Fmake_frame ()
#11 0x080be8e3 in Ffuncall ()
#12 0x08090e2a in execute_rare_opcode ()
#13 0x08093740 in funcall_compiled_function ()
#14 0x080be825 in Ffuncall ()
#15 0x08090e2a in execute_rare_opcode ()
#16 0x08093740 in funcall_compiled_function ()
#17 0x080bcde1 in Feval ()
#18 0x080ba2ab in condition_case_1 ()
#19 0x080bc531 in condition_case_3 ()
#20 0x08090aa7 in execute_rare_opcode ()
#21 0x080916e7 in execute_rare_opcode ()
#22 0x08093740 in funcall_compiled_function ()
---Type <return> to continue, or q <return> to quit---
#23 0x080bcde1 in Feval ()
#24 0x080ba2ab in condition_case_1 ()
#25 0x0809c43c in Freally_early_error_handler ()
#26 0x080b797f in internal_catch ()
#27 0x0809c522 in initial_command_loop ()
#28 0x080b69d6 in xemacs_21_4_19_i386_debian_linux ()
#29 0x080b7583 in main ()
(gdb)
My X packages are 7.0.20. I know xemacs hasn't been updated in a while
but I'd appreciate your help debugging, even if the bug isn't in your
package directly.
Thanks,
Nick Lewycky
I wrote: I lied slightly. "xemacs -nw" loads just fine. Nick
I've tried removing all of the .*emacs* files from my home directory, as well as any local directories in /usr/local/share/emacs and /usr/local/lib/xemacs. It still crashes. I've attached the output of ltrace and of strace. Reading the strace, there's a socked opened to fd#5 (line 5832) which is eventually read from causing a SEGV (line 8040). Or at least, that read is the last call that I see before the SEGV. Causality is another issue. By contrast, the ltrace shows something different happening before the SEGV:
I've recompiled xemacs21 packages with debugging, and I've installed the
libx11 debug packages. Here's the new backtrace:
(gdb) bt
#0 0x55746c79 in XFontsOfFontSet (font_set=0x0,
font_struct_list=0xffffb094,
font_name_list=0xffffb090) at ../../src/FSWrap.c:216
#1 0x081f404b in XlwMenuInitialize (request=0xffffb128, new=0x85988b0,
args=0xffffb5d8, num_args=0xffffb0f4) at xlwmenu.c:2928
#2 0x556e2df8 in XtInitializeWidgetClass () from /usr/lib/libXt.so.6
#3 0x556e337d in XtInitializeWidgetClass () from /usr/lib/libXt.so.6
#4 0x556e37e3 in _XtCreateWidget () from /usr/lib/libXt.so.6
#5 0x556e3a70 in XtCreateWidget () from /usr/lib/libXt.so.6
#6 0x081f95b6 in xlw_create_menubar (instance=0x8598730) at lwlib-Xlw.c:132
#7 0x081edbfd in lw_make_widget (id=65537, parent=0x8567218, pop_up_p=0
'\0')
at lwlib.c:941
#8 0x080d978a in set_frame_menubar (f=0x8566408, deep_p=1, first_time_p=1)
at menubar-x.c:607
#9 0x081cae7a in x_create_widgets (f=0x8566408,
lisp_window_id=<value optimized out>, parent=1441354048) at
frame-x.c:2001
#10 0x08134de9 in Fmake_frame (props=1441354048, device=138439056)
at frame.c:399
#11 0x080bbf9d in Ffuncall (nargs=3, args=0xffffb924) at eval.c:3536
#12 0x08093619 in execute_optimized_program (
program=0x85662f0
"�\210�?�&�f�\"�\027�r\v\"\022�r�t�\"@\"\211\020\026\020�r!\025�016\021!\210�211\024\207",
stack_depth=<value optimized out>,
constants_data=0x55f271b4) at bytecode.c:748
#13 0x080958d8 in funcall_compiled_function (fun=1442382140, nargs=0,
args=0xffffba58) at bytecode.c:519
#14 0x080bbeca in Ffuncall (nargs=1, args=0xffffba54) at eval.c:3572
#15 0x08093619 in execute_optimized_program (
program=0x833a548
"\vA\035�\032\031�r!\025\b��\004�\210�!�\004�\210\f�\017\016\035�\v��f!�!
\210�\210*�\210�\210r�!q\210�\210�!\210\016!��\005\016\"
\210)���\b��\004�\210�\210�026#��\004�!)\207",
stack_depth=<value optimized out>, constants_data=0x55f1169c)
at bytecode.c:748
#16 0x080958d8 in funcall_compiled_function (fun=1442350024, nargs=0,
args=0xffffbb10) at bytecode.c:519
#17 0x080bb461 in Feval (form=1441523500) at eval.c:3392
#18 0x080bf52a in condition_case_1 (handlers=1441518748,
bfun=0x80bac50 <Feval>, barg=1441523500,
hfun=0x80c2210 <run_condition_case_handlers>, harg=1441328992)
at eval.c:1652
#19 0x080c254b in condition_case_3 (bodyform=1441523500, var=1441328992,
handlers=1441518748) at eval.c:1730
#20 0x0809323b in execute_rare_opcode (stack_ptr=0x0,
program_ptr=0x8336eb1
"\210�r!\025\016.�\016��016.��$!\0267�!\210\016&�\005�!\210�026&�\210\016(�\005�!\210�026(\t�\b�t@\tA\"\210)\0168�\003�\207",
opcode=Bcondition_case) at bytecode.c:1273
#21 0x08093f59 in execute_optimized_program (
program=0x8336e20
"\b�\005�!\207�020�\211\034�\025\fG\rGW�\016�r!�f!k�\005�f!\025)�r!\025�\210�\210\v�\a�!�\002�033�016/\0160\"\022\v�\t��n\"�"\210\n�\004�\210�n\0161\016+\0162\v%\210�\210)\016,�\022\016-�\016��0163!\016-\"�#\210\016,�\024\016+�\006�0164!\210�0165!\210�0166!\210�031��217\210�r!\025\016.�\016��016.��$!\0267�!\210\016&�\005�!\210�026&�\210\016(�\005�!\210�026(\t�\b�...,
stack_depth=<value optimized out>,
constants_data=0x55f11d68) at bytecode.c:658
#22 0x080958d8 in funcall_compiled_function (fun=1442350864, nargs=0,
args=0xffffbdf0) at bytecode.c:519
#23 0x080bb461 in Feval (form=1441446640) at eval.c:3392
#24 0x080bf52a in condition_case_1 (handlers=1441353664,
bfun=0x80bac50 <Feval>, barg=1441446640, hfun=0x809e5d0 <cmd_error>,
harg=1441354048) at eval.c:1652
#25 0x0809e98c in top_level_1 (dummy=1441354048) at cmdloop.c:206
#26 0x080ba4bf in internal_catch (tag=1441155952,
func=0x809e950 <top_level_1>, arg=1441354048, threw=0x0) at eval.c:1318
#27 0x0809e82e in initial_command_loop (load_me=1441354048) at cmdloop.c:285
#28 0x080b7ff0 in xemacs_21_4_19_i386_debian_linux (argc=1,
argv=0xffffc204,
envp=0xffffc20c, restart=0) at emacs.c:2460
#29 0x080b8c87 in main (argc=0, argv=0x8377b58, envp=0x0) at emacs.c:2892
XFontsOfFontSet is in libx11-6. The nearest XEmacs code is #6, this
function:
static Widget
xlw_create_menubar (widget_instance* instance)
{
Arg al [1];
Widget widget;
XtSetArg (al [0], XtNmenu, instance->info->val);
widget = XtCreateWidget (instance->info->name, xlwMenuWidgetClass,
instance->parent, al, 1);
XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance);
XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance);
return widget;
}
The line that crashes is "widget = XtCreateWidget..." Here's what's
inside "instance":
(gdb) p instance->info
$1 = (struct _widget_info *) 0x8582fd0
(gdb) p instance->info->name
$2 = 0x8579258 "menubar"
(gdb) p instance->parent
$3 = (Widget) 0x8567218
(gdb) p *instance->parent
$4 = {core = {self = 0x8567218, widget_class = 0x822f740, parent =
0x8566f90,
xrm_name = 2978, being_destroyed = 0 '\0', destroy_callbacks = 0x0,
constraints = 0x0, x = 0, y = 0, width = 0, height = 0, border_width
= 1,
managed = 0 '\0', sensitive = 1 '\001', ancestor_sensitive = 1 '\001',
event_table = 0x0, tm = {translations = 0x0, proc_table = 0x0,
current_state = 0x0, lastEventTime = 0}, accelerators = 0x0,
border_pixel = 0, border_pixmap = 2, popup_list = 0x0, num_popups = 0,
name = 0x852779b "container", screen = 0x83fb140, colormap = 32,
window = 0, depth = 24, background_pixel = 16777215,
background_pixmap = 2, visible = 1 '\001', mapped_when_managed = 1
'\001'}}
(gdb) p *instance
$5 = {widget = 0x0, parent = 0x8567218, pop_up_p = 0 '\0', info =
0x8582fd0,
next = 0x0}
(gdb) p al[0]
$6 = {{name = 0x820c96a "menu", value = 139956840}}
(gdb) p al[1]
$7 = {name = 0x8579250 ".xpm\021", value = 140085040}
It'd be nice if someone could comment on whether this bug is probably
XEmacs or libx11 (or libxt).
Thanks,
Nick Lewycky
My mistake, #1 is also XEmacs code.
The crash in libx11 is clearly caused by misuse of the API. Here's the
function XFontsOfFontSet:
int
XFontsOfFontSet(font_set, font_struct_list, font_name_list)
XFontSet font_set;
XFontStruct ***font_struct_list;
char ***font_name_list;
{
*font_name_list = font_set->core.font_info.font_name_list;
*font_struct_list = font_set->core.font_info.font_struct_list;
return font_set->core.font_info.num_font;
}
The font_set being passed in is NULL. The backtrace leaves out the
function "extract_font_extents" which is actually making the call to
XFontsOfFontSet from lwlib/xlwmenu.c:2928. Here's the function with
preprocessor directives applied:
static void
extract_font_extents (XlwMenuWidget mw)
{
XFontStruct **fontstruct_list;
char **fontname_list;
XFontStruct *font;
int fontcount = XFontsOfFontSet(mw->menu.font_set, &fontstruct_list,
&fontname_list);
mw->menu.font_ascent = 0;
mw->menu.font_descent = 0;
while (--fontcount >= 0) {
font = fontstruct_list[fontcount];
if (font->ascent > (int) mw->menu.font_ascent)
mw->menu.font_ascent = font->ascent;
if (font->descent > (int) mw->menu.font_descent)
mw->menu.font_descent = font->descent;
}
}
Anyways, "mw" is being passed in to XlwMenuInitialize as the parameter
"new". Its menu.font_set is NULL and XlwMenuInitialize makes no effect
to set it to something, so clearly it's expecting it to be initialized
elsewhere.
Not knowing the design of the software, that's as far as I can go.
Please fix it, or at least forward it upstream. For completeness, I've
included some more debugging info showing the contents of "mw" and
"mw->menu":
(gdb) p *(XlwMenuWidget)new
$1 = {core = {self = 0x8598870, widget_class = 0x822f8a0, parent =
0x85671f8,
xrm_name = 423, being_destroyed = 0 '\0', destroy_callbacks = 0x0,
constraints = 0x0, x = 0, y = 0, width = 0, height = 0, border_width
= 1,
managed = 0 '\0', sensitive = 1 '\001', ancestor_sensitive = 1 '\001',
event_table = 0x0, tm = {translations = 0x8598848, proc_table = 0x0,
current_state = 0x0, lastEventTime = 0}, accelerators = 0x0,
border_pixel = 0, border_pixmap = 2, popup_list = 0x0, num_popups = 0,
name = 0x832d49e "menubar", screen = 0x8417048, colormap = 32,
window = 0,
depth = 24, background_pixel = 13421772, background_pixmap = 2,
visible = 1 '\001', mapped_when_managed = 1 '\001'}, menu = {
font = 0x85989a0, font_set = 0x0, font_ascent = 0, font_descent = 0,
foreground = 5066061, button_foreground = 255,
highlight_foreground = 16711680, title_foreground = 11546720, margin
= 2,
horizontal_margin = 2, vertical_margin = 1, column_spacing = 4,
shadow_thickness = 2, indicator_size = 0, top_shadow_color = 16119285,
bottom_shadow_color = 8026746, select_color = 2263842,
top_shadow_pixmap = 0, bottom_shadow_pixmap = 0, cursor_shape =
50331659,
open = 0x0, select = 0x0, contents = 0x8579228, horizontal = 1,
use_backing_store = 0 '\0', bounce_down = 1 '\001',
lookup_labels = 0 '\0', old_depth = 0, old_stack = 0x0,
old_stack_length = 0, new_depth = 0, new_stack = 0x0,
new_stack_length = 0, windows = 0x0, windows_length = 0,
foreground_gc = 0x859a1f8, button_gc = 0x859ab00,
background_gc = 0x859a8e8, inactive_gc = 0x85990d0,
inactive_button_gc = 0x859c2b0, shadow_top_gc = 0x859c328,
shadow_bottom_gc = 0x859c3a0, select_gc = 0x8599038,
highlight_gc = 0x859a9d0, title_gc = 0x859aa68, cursor = 50331659,
popped_up = 0 '\0', gray_pixmap = 50331660, pointer_grabbed = 0 '\0',
next_release_must_exit = 0 '\0', menu_post_time = 0,
menu_bounce_time = 0,
last_selected_val = 0x0}}
(gdb) p ((XlwMenuWidget)new)->menu
$2 = {font = 0x85989a0, font_set = 0x0, font_ascent = 0, font_descent = 0,
foreground = 5066061, button_foreground = 255,
highlight_foreground = 16711680, title_foreground = 11546720, margin = 2,
horizontal_margin = 2, vertical_margin = 1, column_spacing = 4,
shadow_thickness = 2, indicator_size = 0, top_shadow_color = 16119285,
bottom_shadow_color = 8026746, select_color = 2263842,
top_shadow_pixmap = 0, bottom_shadow_pixmap = 0, cursor_shape = 50331659,
open = 0x0, select = 0x0, contents = 0x8579228, horizontal = 1,
use_backing_store = 0 '\0', bounce_down = 1 '\001', lookup_labels = 0
'\0',
old_depth = 0, old_stack = 0x0, old_stack_length = 0, new_depth = 0,
new_stack = 0x0, new_stack_length = 0, windows = 0x0, windows_length = 0,
foreground_gc = 0x859a1f8, button_gc = 0x859ab00, background_gc =
0x859a8e8,
inactive_gc = 0x85990d0, inactive_button_gc = 0x859c2b0,
shadow_top_gc = 0x859c328, shadow_bottom_gc = 0x859c3a0,
select_gc = 0x8599038, highlight_gc = 0x859a9d0, title_gc = 0x859aa68,
cursor = 50331659, popped_up = 0 '\0', gray_pixmap = 50331660,
pointer_grabbed = 0 '\0', next_release_must_exit = 0 '\0',
menu_post_time = 0, menu_bounce_time = 0, last_selected_val = 0x0}
(gdb) p ((XlwMenuWidget)new)->menu.font_set
$3 = (XFontSet) 0x0
Thanks,
Nick Lewycky
This just started working for me. It's nice to have XEmacs back!
I'd close this bug, but there seem to be an awful lot of reports merged
into this one, so I'll leave it as is and let the maintainer decide
whether the core issue is fixed.
Here are my versions of relevant packages:
xemacs21 21.4.20-1
xemacs21-basesupport 2006.05.10-1
xemacs21-bin 21.4.20-1
xemacs21-mule 21.4.20-1
xemacs21-mulesupport 2006.05.10-1
xemacs21-support 21.4.20-1
xemacs21-supportel 21.4.20-1
xorg 7.1.0-18
xserver-xorg 7.1.0-18
xserver-xorg-core 1.3.0.0.dfsg-3
xfonts-utils 1.0.1-1
xfs 1.0.1-5
xfonts-100dpi 1.0.0-3
xfonts-100dpi-transcoded 1.0.0-3
xfonts-75dpi 1.0.0-3
xfonts-75dpi-transcoded 1.0.0-3
libxfont1 1.2.8-1
libxft2 2.1.12-2
Thanks,
Nick Lewycky
Dear submitter, as the package xemacs21 has just been removed from the Debian archive unstable we hereby close the associated bug reports. We are sorry that we couldn't deal with your issue properly. For details on the removal, please see http://bugs.debian.org/725883 The version of this package that was in Debian prior to this removal can still be found using http://snapshot.debian.org/. This message was generated automatically; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@ftp-master.debian.org. Debian distribution maintenance software pp. Ansgar Burchardt (the ftpmaster behind the curtain)