Hi,
I started to use gnuclient -nw to read my mail from home, and
sometimes XEmacs will be gone when I get back to work. It seems to
happen when I close the text mode frame. So I decided to find my core
file and look into it. The Lisp backtrace doesn't look interesting:
# (condition-case ... . error)
# (catch top-level ...)
The gdb 'where' command gave more interesting results:
#0 0x4034cd21 in __kill () from /lib/libc.so.6
#1 0x80bb4a1 in fatal_error_signal (sig=6) at emacs.c:536
#2 <signal handler called>
#3 0x4034cd21 in __kill () from /lib/libc.so.6
#4 0x4034c996 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#5 0x4034e0b8 in abort () at ../sysdeps/generic/abort.c:88
#6 0x80be7db in assert_failed (file=0x824d5c9 "events.h", line=505,
expr=0x824d620 "RECORD_TYPEP (obj, lrecord_type_command_builder)")
at emacs.c:3320
#7 0x810736c in execute_command_event (command_builder=0x9200358, event={
gu = {type = Lisp_Type_Record, val = 39211188}, s = {bits = 0,
val = 78422376}, u = {bits = 0, val = 78422376}, ui = 156844752,
i = 156844752, v = 0x95942d0, cv = 0x95942d0}) at events.h:505
#8 0x8107cac in Fdispatch_event (event={gu = {type = Lisp_Type_Record,
val = 39211188}, s = {bits = 0, val = 78422376}, u = {bits = 0,
val = 78422376}, ui = 156844752, i = 156844752, v = 0x95942d0,
cv = 0x95942d0}) at event-stream.c:4186
#9 0x80a0ae2 in Fcommand_loop_1 () at cmdloop.c:585
#10 0x80a0dcd in command_loop_1 (dummy={gu = {type = Lisp_Type_Record,
val = 270084330}, s = {bits = 0, val = 540168660}, u = {bits = 0,
val = 540168660}, ui = 1080337320, i = 1080337320, v = 0x4064a3a8,
cv = 0x4064a3a8}) at cmdloop.c:496
#11 0x80c1168 in condition_case_1 (handlers={gu = {type = Lisp_Type_Record,
val = 270083754}, s = {bits = 0, val = 540167508}, u = {bits = 0,
val = 540167508}, ui = 1080335016, i = 1080335016, v = 0x40649aa8,
cv = 0x40649aa8}, bfun=0x80a0d84 <command_loop_1>, barg={gu = {
type = Lisp_Type_Record, val = 270084330}, s = {bits = 0,
val = 540168660}, u = {bits = 0, val = 540168660}, ui = 1080337320,
i = 1080337320, v = 0x4064a3a8, cv = 0x4064a3a8},
hfun=0x80a0e60 <cmd_error>, harg={gu = {type = Lisp_Type_Record,
val = 270084330}, s = {bits = 0, val = 540168660}, u = {bits = 0,
val = 540168660}, ui = 1080337320, i = 1080337320, v = 0x4064a3a8,
cv = 0x4064a3a8}) at eval.c:1692
#12 0x80a0fa3 in command_loop_2 (dummy={gu = {type = Lisp_Type_Record,
val = 270084330}, s = {bits = 0, val = 540168660}, u = {bits = 0,
val = 540168660}, ui = 1080337320, i = 1080337320, v = 0x4064a3a8,
cv = 0x4064a3a8}) at cmdloop.c:258
#13 0x80caee3 in internal_catch (tag={gu = {type = Lisp_Type_Record,
val = 270035886}, s = {bits = 0, val = 540071772}, u = {bits = 0,
val = 540071772}, ui = 1080143544, i = 1080143544, v = 0x4061aeb8,
cv = 0x4061aeb8}, func=0x80a0f5c <command_loop_2>, arg={gu = {
type = Lisp_Type_Record, val = 270084330}, s = {bits = 0,
val = 540168660}, u = {bits = 0, val = 540168660}, ui = 1080337320,
i = 1080337320, v = 0x4064a3a8, cv = 0x4064a3a8}, threw=0x0)
at eval.c:1317
#14 0x80a029d in initial_command_loop (load_me={gu = {type = Lisp_Type_Record, val
= 270084330}, s = {bits = 0, val = 540168660}, u = {bits = 0,
val = 540168660}, ui = 1080337320, i = 1080337320, v = 0x4064a3a8,
cv = 0x4064a3a8}) at cmdloop.c:307
#15 0x80bc6ff in xemacs_21_5_b4_i686_pc_linux () at emacs.c:2358
#16 0x80bea9b in main (argc=4, argv=0xbffff424, envp=0xbffff438)
at emacs.c:2725
#17 0x403469cb in __libc_start_main (main=0x80bea24 <main>, argc=4,
argv=0xbffff424, init=0x807e068 <_init>, fini=0x8220a14 <_fini>,
rtld_fini=0x4000aea0 <_dl_fini>, stack_end=0xbffff41c)
at ../sysdeps/generic/libc-start.c:92
Coincidentally, Robert Pluim sent out a message about gnuclient -nw
and how it led to a crash here:
#4 0x080b659b in assert_failed (
file=0x82180e0 "/home/rpluim/xemacs-21.5/src/events.h", line=505,
expr=0x8218160 "RECORD_TYPEP (obj, lrecord_type_command_builder)")
at /home/rpluim/xemacs-21.5/src/emacs.c:3320
This looks a lot like what I had:
#6 0x80be7db in assert_failed (file=0x824d5c9 "events.h", line=505,
expr=0x824d620 "RECORD_TYPEP (obj, lrecord_type_command_builder)")
at emacs.c:3320
So I'm going to try Robert's patch. Thanks Robert!
- Amit
P.S. I compiled XEmacs a few days ago from CVS. It reports itself as
21.5 (beta 4) "bamboo" XEmacs Lucid
--
Amit J Patel, Computer Science Department, Stanford University
http://www-cs-students.stanford.edu/~amitp/
``Parkinson's Other Law: Perfection is achieved only
at the point of collapse.''