[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

stack overflow while using sml-mode.el

From: Colin Walters
Subject: stack overflow while using sml-mode.el
Date: 22 Oct 2000 22:23:47 -0400
User-agent: Microsoft Gnus Express, Build 5.0808 (5.8.8)


I'm having a strange problem where Emacs will overflow the stack in
alloc.c, while using sml-mode.el, by Stefan Monnier.  It happens
somewhat rarely (about once every two weeks), and I am currently
unable to reproduce it at will.  

The only thing that I can remember in common between the sessions is
that I was trying to indent (using TAB), then I saw endless "Garbage
collecting..." messages, and 'C-g' didn't work (I have
`garbage-collection-messages' => t).

Here is an example of a gdb session after the crash:

(gdb) info program
        Using the running image of child Pid 17792.
Program stopped at 0x80df76e.
It stopped with signal SIGSEGV, Segmentation fault.
(gdb) bt full 3
#0  0x80df76e in mark_object (argptr=0x82f2c7c) at alloc.c:2070
        ptr = (struct Lisp_String *) 0x8366eb4
        objptr = (int *) 0x82f2c7c
        obj = 943091380
#1  0x80dfab0 in mark_object (argptr=0x848bf6c) at alloc.c:2197
        ptr = (struct Lisp_Symbol *) 0x82f2c7c
        ptrx = (struct Lisp_Symbol *) 0x181fd8ac
        objptr = (int *) 0x848bac0
        obj = 405744764
#2  0x80dfa34 in mark_object (argptr=0x848ba3c) at alloc.c:2181
        ptr = (struct Lisp_Vector *) 0x181fd8ac
        size = 29
        ptr1 = (struct Lisp_Vector *) 0x848bf20
        i = 17
        objptr = (int *) 0x1d
        obj = 1212727072
(More stack frames follow...)
(gdb) list alloc.c:2070
2065        {
2066        case Lisp_String:
2067          {
2068            register struct Lisp_String *ptr = XSTRING (obj);
2070            MARK_INTERVAL_TREE (ptr->intervals);
2071            if (ptr->size & MARKBIT)
2072              /* A large string.  Just set ARRAY_MARK_FLAG.  */
2073              ptr->size |= ARRAY_MARK_FLAG;
2074            else
(gdb) p ptr
$6 = (struct Lisp_String *) 0x8366eb4
(gdb) xstring
Argument to arithmetic operation not a number or boolean.
(gdb) p objptr
$7 = (int *) 0x82f2c7c
(gdb) p *objptr
$8 = 943091380
(gdb) xtype

(Am I using the "xstring" macro correctly?)

I still have this gdb session running, if more information is needed.
Hopefully, I'll be able to narrow the problem down a bit more; sorry
about the lack of information.

Emacs has been so stable for me in the past that I was ready to blame
this problem on cosmic rays, but three or four crashes while in an SML
buffer would be a bit of a stretch for that... :/

Oh yeah, Emacs information:

"GNU Emacs 20.7.1 (i686-pc-linux-gnu, X toolkit)
 of Sat Oct  7 2000 on meta"

reply via email to

[Prev in Thread] Current Thread [Next in Thread]