I've been having this problem since b40. I tried building several
different ways - with and without --gung-ho, with and without
--with-system-malloc, and with optimization turned off (-O0). Same
results each time.
The compiler I'm using is
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)
Here's what happens. I start XEmacs (with -vanilla) and bring up VM,
then C-x k to kill the VM buffer. Instead of just closing the VM
frame, XEmacs reports a segmentation violation and coredumps.
I just repeated the experiment running inside of GDB, here's a log of
the gdb session.
Script started on Mon May 25 13:27:34 1998
[1msirius:~/XEmacs/xemacs-21.0-b41> [msrc/xemacs [K[K[K[K[K[K[K[K[K[Kgdb src/xemacs
GDB is free software and you are welcome to 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.
GDB 4.16 (i486-slackware-linux),
Copyright 1996 Free Software Foundation, Inc...
(gdb) r -vanilla
Starting program: /udma/cgw/XEmacs/xemacs-21.0-b41/src/xemacs -vanilla
Program received signal SIGSEGV, Segmentation fault.
0x4027917e in XtIsSubclass ()
(gdb) where
#0 0x4027917e in XtIsSubclass ()
#1 0xbfffebfc in ?? ()
#2 0x40279cfc in XtDisplayOfObject ()
#3 0x40103e35 in unset_current_xic ()
#4 0x4010231d in _XmImFreeShellData ()
#5 0x4011dfab in Destroy ()
#6 0x402714eb in Phase2Destroy ()
#7 0x402713ba in Recursive ()
#8 0x402717a6 in XtPhase2Destroy ()
#9 0x4027189f in _XtDoPhase2Destroy ()
#10 0x40271a11 in XtDestroyWidget ()
#11 0x81c05d3 in x_delete_frame (f=0x8734470) at frame-x.c:2526
#12 0x812be11 in delete_frame_internal (f=0x8734470, force=0,
called_from_delete_device=0, from_io_error=0) at frame.c:1533
#13 0x812c24b in Fdelete_frame (frame=141771888, force=137995620)
at frame.c:1679
#14 0x80bac15 in funcall_recording_as (recorded_as=140669460, nargs=1,
args=0xbfffee74) at eval.c:3193
#15 0x80bb132 in Ffuncall (nargs=2, args=0xbfffee74) at eval.c:3238
#16 0x80bb774 in Fapply (nargs=2, args=0xbfffee74) at eval.c:3408
#17 0x80ba386 in Feval (form=139324424) at eval.c:3023
#18 0x80b7dc9 in condition_case_1 (handlers=140792308, bfun=0x80b9d3c <Feval>,
barg=139324424, hfun=0x80b7e18 <run_condition_case_handlers>,
---Type <return> to continue, or q <return> to quit---
harg=137995620) at eval.c:1653
#19 0x80b7fdb in condition_case_3 (bodyform=139324424, var=137995620,
handlers=140792308) at eval.c:1715
#20 0x808f13d in Fbyte_code (bytestr=139711052, vector=140414432, maxdepth=7)
at bytecode.c:576
#21 0x80bbf54 in funcall_lambda (fun=140754004, nargs=2, arg_vector=0xbffff270)
at eval.c:3597
#22 0x80baff9 in funcall_recording_as (recorded_as=140632944, nargs=2,
args=0xbffff26c) at eval.c:3200
#23 0x80bb132 in Ffuncall (nargs=3, args=0xbffff26c) at eval.c:3238
#24 0x808e6f3 in Fbyte_code (bytestr=140687548, vector=140431552, maxdepth=7)
at bytecode.c:416
#25 0x80bbf54 in funcall_lambda (fun=139705180, nargs=0, arg_vector=0xbffff43c)
at eval.c:3597
#26 0x80baff9 in funcall_recording_as (recorded_as=140668484, nargs=0,
args=0xbffff438) at eval.c:3200
#27 0x80bb132 in Ffuncall (nargs=1, args=0xbffff438) at eval.c:3238
#28 0x80bc29f in run_hook_with_args_in_buffer (buf=0x85eead8, nargs=1,
args=0xbffff438, cond=RUN_HOOKS_TO_COMPLETION) at eval.c:3748
#29 0x80bc2ee in run_hook_with_args (nargs=1, args=0xbffff438,
cond=RUN_HOOKS_TO_COMPLETION) at eval.c:3761
#30 0x80bbfab in Frun_hooks (nargs=1, args=0xbffff438) at eval.c:3625
#31 0x80bc47e in run_hook (hook=140668484) at eval.c:3863
---Type <return> to continue, or q <return> to quit---
#32 0x808a30b in Fkill_buffer (bufname=140921844) at buffer.c:1248
#33 0x80badc2 in funcall_recording_as (recorded_as=138068048, nargs=1,
args=0xbffff4f0) at eval.c:3197
#34 0x80bb132 in Ffuncall (nargs=2, args=0xbffff4f0) at eval.c:3238
#35 0x8092d12 in Fcall_interactively (function=138068048,
record_flag=137995620, keys=137995620) at callint.c:935
#36 0x80b9469 in Fcommand_execute (cmd=138068048, record=137995620,
keys=137995620) at eval.c:2584
#37 0x81030f7 in execute_command_event (command_builder=0x83be8a0,
event=140208384) at event-stream.c:4343
#38 0x810374d in Fdispatch_event (event=140208384) at event-stream.c:4634
#39 0x8099e35 in Fcommand_loop_1 () at cmdloop.c:579
#40 0x8099c09 in command_loop_1 (dummy=137995620) at cmdloop.c:494
#41 0x80b7dc9 in condition_case_1 (handlers=137995732,
bfun=0x8099be8 <command_loop_1>, barg=137995620,
hfun=0x80994cc <cmd_error>, harg=137995620) at eval.c:1653
#42 0x80995d1 in command_loop_3 () at cmdloop.c:256
#43 0x80995f4 in command_loop_2 (dummy=137995620) at cmdloop.c:267
#44 0x80b79dd in internal_catch (tag=138070328,
func=0x80995ec <command_loop_2>, arg=137995620, threw=0x0) at eval.c:1328
#45 0x8099804 in initial_command_loop (load_me=137995620) at cmdloop.c:305
#46 0x80b3990 in xemacs_21_0_b41_i586_pc_linux (argc=2, argv=0xbffff840,
envp=0xbffff84c, restart=0) at emacs.c:1692
---Type <return> to continue, or q <return> to quit---
#47 0x80b44c8 in main (argc=2, argv=0xbffff840, envp=0xbffff84c)
at emacs.c:2109
#48 0x807d0be in _start ()
(gdb) q
The program is running. Quit anyway (and kill it)? (y or n) y
exit
Script done on Mon May 25 13:28:41 1998