emacs-devel
[Top][All Lists]
Advanced

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

Re: Emacs crashes accidentally


From: Herbert Euler
Subject: Re: Emacs crashes accidentally
Date: Wed, 06 Sep 2006 20:50:49 +0800

From: Richard Stallman <address@hidden>
Reply-To: address@hidden
To: "Herbert Euler" <address@hidden>
CC: address@hidden
Subject: Re: Emacs crashes accidentally
Date: Thu, 10 Aug 2006 12:27:42 -0400

I'm so sorry I was required to have some training
these days and I could not read mails.  Please
forgive me.

      Before crashing, I wanted to undo some deletion
    so I typed C-x u C-x z z z ...  When some `z' was pressed,
    Emacs suddenly crashed.

The term "to crash" is often synonymous with "getting some z's" ;-).

#3 0x010c10b3 in strout (ptr=0x2469648 <Address 0x2469648 out of bounds>,
    size=27, size_byte=27, printcharfun=19413041,
        multibyte=0) at print.c:417
#4 0x010c1385 in print_string (string=37526819, printcharfun=19413041) at
    print.c:506

It looks like STRING is invalid Lisp data.  Please look inside it
and see precisely what is wrong with it.

(gdb) up
#4 0x010c1385 in print_string (string=37526819, printcharfun=19413041) at print.c:506
506           strout (SDATA (string),
(gdb) p string
$1 = 37526819
(gdb) xpr
Lisp_String
$2 = (struct Lisp_String *) 0x23c9d20
"No further undo information"
(gdb) p *$
$3 = {
 size = 27,
 size_byte = -1,
 intervals = 0x0,
 data = 0x243d8ac "No further undo information"
}
(gdb)

I don't know whether it's wrong with STRING.

    #5  0x010c552d in print_object (obj=37526819, printcharfun=19413041,
    escapeflag=0) at print.c:2050
#6 0x010c3c4a in print (obj=37526819, printcharfun=19413041, escapeflag=0)
    at print.c:1301
    #7  0x010c3059 in Fprinc (object=37526819, printcharfun=19413041) at
    print.c:847
    #8  0x010c3870 in print_error_message (data=36753309, stream=19413041,
    context=0x9fbff70c "", caller=19764345)
        at print.c:1090

Where did print_error_message get the string?  Where did it come from?
If it came from DATA, then please try to trace it back.
What are the elements of DATA?

#8 0x010c3870 in print_error_message (data=36753309, stream=19413041, context=0x9fbff70c "", caller=19764345) at print.c:1090 #9 0x0105bd82 in cmd_error_internal (data=36753309, context=0x9fbff70c "") at keyboard.c:1268
#10 0x0105bc80 in cmd_error (data=36753309) at keyboard.c:1205
#11 0x010b3dfb in internal_condition_case (bfun=0x105bfe0 <command_loop_1>, handlers=19471817, hfun=0x105bbd8 <cmd_error>)
   at eval.c:1465

Having seen this, I traced into INTERNAL_CONDITION_CASE.
It's version 1.210.4.35 of EVAL.C, line 1465.  Lines near that
are:

 if (_setjmp (c.jmp))
   {
     return (*hfun) (c.val);
   }

I don't know how INTERNAL_CONDITION_CASE is invoked here,
is it invoked by jumping?  Now please take a look at what DATA
is inside CMD_ERROR, which is the same as those in
CMD_ERROR_INTERNAL and PRINT_ERROR_MESSAGE:

(gdb) up
#10 0x0105bc80 in cmd_error (data=36753309) at keyboard.c:1205
1205      cmd_error_internal (data, macroerror);
(gdb) p data
$25 = 36753309
(gdb) xpr
Lisp_Cons
$26 = (struct Lisp_Cons *) 0x230cf98
{
 car = 0x1291dc9,
 u = {
   cdr = 0x230cfad,
   chain = 0x230cfad
 }
}
(gdb) p $26->car
$27 = 19471817
(gdb) xpr
Lisp_Symbol
$28 = (struct Lisp_Symbol *) 0x1291dc8
"error"
(gdb) p $26->u->cdr
$29 = 36753325
(gdb) xpr
Lisp_Cons
$30 = (struct Lisp_Cons *) 0x230cfa8
{
 car = 0x23c9d23,
 u = {
   cdr = 0x1283801,
   chain = 0x1283801
 }
}
(gdb) p $30->car
$31 = 37526819
(gdb) xpr
Lisp_String
$32 = (struct Lisp_String *) 0x23c9d20
"No further undo information"
(gdb) p $30->u->cdr
$33 = 19412993
(gdb) xpr
Lisp_Symbol
$34 = (struct Lisp_Symbol *) 0x1283800
"nil"
(gdb)

Hope the information can help.

Beg your pardon for my late reply again.  I'm so sorry.

Regards,
Guanpeng Xu

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/





reply via email to

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