eggert@burns.twinsun.com (Paul Eggert) (08/10/89)
The command ``emacs -t /'' dumps core, using GNU Emacs 18.54 running under
SunOS 4.0.1 on a Sun-3/50. ``emacs -t X'' also dumps core for most other
values of X. Here is a scenario.
% emacs -t /
Using /
Abort (core dumped)
% adb /local/bin/emacs
:r -t /
Using /
SIGIOT 6: abort
stopped at _kill+6: bcss _getpgrp+0xa
$c
_kill(?)
_abort() + 6
_wait_reading_process_input(0x0,0xffffffff,0x1) + 17c
_kbd_buffer_get_char() + 70
_get_char(0x1) + 1ea
_read_key_sequence(0xefffadc,0x1e,0x0,0x0) + 5e
_command_loop_1() + 108
_internal_condition_case(0x12dcc,0x10ff8fc,0x129ea) + a8
_command_loop_2(0x10ff80c) + 12
_internal_catch(0x10ff8e8,0x12cac,0x10ff80c) + 6a
_command_loop() + 50
_Frecursive_edit() + 96
_main(0x3,0xefffda8,0xefffdb8) + 4b0
_start1() + 38
__start() + 4
Here is a patch to src/emacs.c; it may mask a deeper bug in
wait_reading_process_input(). By the way, I think the third argument ``2'' in
``open(..., O_RDWR, 2)'' is a typographical error and should be removed, but I
preserved it because it does not cause a bug.
RCS file: RCS/emacs.c,v
retrieving revision 1.1
diff -c -r1.1 emacs.c
*** /tmp/,RCSt1a01670 Wed Aug 9 21:26:14 1989
--- emacs.c Wed Aug 9 20:42:03 1989
***************
*** 237,244 ****
skip_args += 2;
close (0);
close (1);
! open (argv[skip_args], O_RDWR, 2 );
! dup (0);
fprintf (stderr, "Using %s\n", argv[skip_args]);
#ifdef HAVE_X_WINDOWS
inhibit_window_system = 1; /* -t => -nw */
--- 237,244 ----
skip_args += 2;
close (0);
close (1);
! if (open (argv[skip_args],O_RDWR,2) != 0 || !isatty (0) || dup (0) != 1)
! fatal ("%s: bad device\n", argv[skip_args]);
fprintf (stderr, "Using %s\n", argv[skip_args]);
#ifdef HAVE_X_WINDOWS
inhibit_window_system = 1; /* -t => -nw */