Article View: gnu.emacs.bug
Article #98602v18.57: coredump while reading from minibuffer
From: Kevin Layer
Date: Wed, 08 May 1991 00:50
Date: Wed, 08 May 1991 00:50
79 lines
3838 bytes
3838 bytes
Running 18.57 on a NeXT (though it happens on sparc's, too), I get a
core dump with the following backtrace. It happens once a day.
#0 0x50070d4 in bcopy ()
#1 0x18912 in insert (string=(unsigned char *) 0x17da1c
<Address 0x17da1c out of bounds>, length=14)
(insdel.c line 276)
#2 0x27ab4 in Finsert (nargs=1, args=(int *) 0x3fff25c)
(editfns.c line 527)
#3 0x192cc in read_minibuf (map=84363680, initial=51894808,
prompt=51064840, expflag=0) (minibuf.c line 131)
#4 0x19e1a in Fcompleting_read (prompt=51064840,
table=17262912, pred=51894808,
require_match=17245744,
init=51894808) (minibuf.c line 636)
#5 0x1cc08 in Fread_file_name (prompt=51064840,
dir=17245744, defalt=17245744, mustmatch=17245744)
(fileio.c line 2205)
#6 0x2b61c in Ffuncall (nargs=2, args=(int *) 0x3fff33c)
(eval.c line 1713)
#7 0x343aa in Fbyte_code (bytestr=51064788, vector=67814960,
maxdepth=4) (bytecode.c line 270)
#8 0x2af72 in Feval (form=84591536) (eval.c line 1413)
#9 0x2889e in Fcall_interactively (function=17481172,
record=17245744) (callint.c line 208)
#10 0x1306e in Fcommand_execute (cmd=17481172, record=17245744)
(keyboard.c line 1670)
#11 0x1224a in command_loop_1 () (keyboard.c line 773)
in command_loop_1(), cmd (same as the `cmd' argument to
Fcommand_execute()) is set from the global variable
read_key_sequence_cmd which has this in it:
(gdb) print ((enum Lisp_Type) ((read_key_sequence_cmd) >> 24))
$30 = Lisp_Symbol
(gdb) x/x ((read_key_sequence_cmd) & ((1<<24) - 1))
0xabdd4 <XrmQString+238664>: 0x000b2fa8
(gdb) x/x (0x000b2fa8 & ((1<<24) - 1))
0xb2fa8 <XrmQString+267804>: 0x00000016
(gdb)
0xb2fac <XrmQString+267808>: 0x6d792d66
(gdb) x/x 0x6d792d66
0x6d792d66: memory reference out of bounds.
(gdb)
so read_key_sequence_cmd is a symbol, and it appears the first slot in
the symbol is a string, which has a bogus data slot. Furthermore, it
seems the bug has to be in the first part of read_key_sequence(), but
I can't find it. Either `local' or `global' is getting a bogus value.
Problem is, this is impossible to reliably reproduce (it only happens
at the worse possible moments, about once a day).
More info:
(gdb) print keybuf
$26 = {"^X^F^@..."}
(gdb) print this_command_key_count
$28 = 2
(I had just typed ^X^F, which is bound to a byte-compiled function
called ``my-find-alternate-file'', which is:
(defun my-find-alternate-file (filename alternate)
(interactive (if current-prefix-arg
(list (read-file-name "Find alternate file: ") t)
(list (read-file-name "Find file: ") nil)))
(if alternate
(find-alternate-file filename)
(find-file filename)))
and this never happened in 18.55.)
I'd appreciate hearing any good ideas on how to track this one down (I
still have the core file).
--
Kevin Layer, Franz Inc. 1995 University Avenue, Suite 275
layer@Franz.COM (internet) Berkeley, CA 94704
uunet!franz!layer (uucp) Phone: (415) 548-3600; FAX: (415) 548-8253
Technical Details
Message-ID:
<LAYER.91May7175038@ice.Franz.COM>Path:
arc1-ca.pugleaf.net!gmdzi!unido!fauern!ira.uka.de!sol.ctr.columbia.edu!lll-winken!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!asuvax!ukma!usenet.ins.cwru.edu!tut.cis.ohio-state.edu!unreplyable!garbageShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fb2f1,3057b51af758d16e,start X-Google-Attributes: gidfb2f1,public X-Google-ArrivalTime: 1991-05-08 10:47:27 PST Path: arc1-ca.pugleaf.net!gmdzi!unido!fauern!ira.uka.de!sol.ctr.columbia.edu!lll-winken!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!asuvax!ukma!usenet.ins.cwru.edu!tut.cis.ohio-state.edu!unreplyable!garbage From: franz!layer@UUNET.UU.NET (Kevin Layer) Newsgroups: gnu.emacs.bug Subject: v18.57: coredump while reading from minibuffer Message-ID: <LAYER.91May7175038@ice.Franz.COM> Date: 8 May 91 00:50:38 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: Franz Inc., Berkeley, CA Lines: 79 Approved: bug-gnu-emacs@prep.ai.mit.edu