try this with "Benadir":
- xemacs -vanilla
- C-h k
- click on the Options/Fonts menu entry (generating the list of fonts)
and wait for the submenu to pop up
- click somewhere in the window outside the menus
- watch XEmacs dump core.
You can replace the options/fonts menu with any operation that
generates enough garbage to trigger a GC (e.g. selecting
Options/Customize/Emacs).
The backtrace is pretty uninformative -- xemacs tries to print "wrong
type argument: stringp" but the object is corrupted and a segfault in
print_internal occurs.
Setting a breakpoint at Fthrow reveals that the string 'prompt' in
Fnext_event has been collected (see backtrace below). This string had
been created by callint_prompt (callint.c:202) but not gcpro'd
sufficiently.
One possible fix would be to replace the calls to callint_prompt
(through the macro PROMPT()) by a local variable in
Fcall_interactively which can be gcpro'd.
I can cook up a patch for this if all of you agree that this is The
Right Thing.
Any comments?
----------------------------------------------------------------------
(gdb) break Fthrow
Breakpoint 1 at 0x80b5393: file /local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/eval.c,
line 1479.
(gdb) c
Continuing.
Breakpoint 1, Fthrow (tag=137658496, val=137680396) at
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/eval.c:1479
1479 throw_or_bomb_out (tag, val, 0, Qnil, Qnil); /* Doesn't return */
(gdb) where
#0 Fthrow (tag=137658496, val=137680396) at
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/eval.c:1479
#1 0x80b5eb2 in signal_1 (sig=137490828, data=137680420) at
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/eval.c:1956
#2 0x80b612d in Fsignal (error_symbol=137490828, data=137680420) at
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/eval.c:2044
#3 0x80b6191 in signal_error (sig=137490828, data=137680420) at
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/eval.c:2053
#4 0x8099161 in dead_wrong_type_argument (predicate=137566696, value=137947804) at
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/data.c:115
#5 0x80e55ff in Fnext_event (event=139133164, prompt=137947804) at
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/event-stream.c:2156
#6 0x80e9d24 in Fread_key_sequence (prompt=137947804, continue_echo=137490660,
dont_downcase_last=137490660) at
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/event-stream.c:4761
#7 0x808e91f in Fcall_interactively (function=138183092, record_flag=137490660,
keys=137490660) at /local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/callint.c:718
----------------------------------------------------------------------
--
Gunnar Evermann
Natural Language Systems Group, University of Hamburg
EMail: Gunnar.Evermann(a)nats.informatik.uni-hamburg.de
Show replies by date