[Top][All Lists]
[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: |
Fri, 08 Sep 2006 10:50:27 +0800 |
Having found the followings:
(gdb) bt
#0 0x211c8104 in kill () from /usr/lib/libc.so.4
#1 0x01059900 in fatal_error_signal (sig=11) at emacs.c:430
#2 <signal handler called>
[ Please pay attention to these two frames ]
#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
#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
#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
#12 0x0105be78 in command_loop_2 () at keyboard.c:1328
#13 0x010b399c in internal_catch (tag=19460913, func=0x105be54
<command_loop_2>, arg=19412993) at eval.c:1213
#14 0x0105be28 in command_loop () at keyboard.c:1307
#15 0x0105ba0f in recursive_edit_1 () at keyboard.c:1000
#16 0x0105bb2a in Frecursive_edit () at keyboard.c:1061
#17 0x0105a9f6 in main (argc=1, argv=0x9fbff9ec) at emacs.c:1814
(gdb) p string
$10 = 37526819
(gdb) xstring
$11 = (struct Lisp_String *) 0x23c9d20
"No further undo information"
(gdb) p *$
$12 = {
size = 27,
size_byte = -1,
intervals = 0x0,
data = 0x243d8ac "No further undo information"
}
(gdb)
PRINT_STRING calls STROUT in this way:
(print.c, version 1.190.2.21, line 505-508)
/* strout is safe for output to a frame (echo area) or to print_buffer.
*/
strout (SDATA (string),
chars, SBYTES (string),
printcharfun, STRING_MULTIBYTE (string));
"SDATA (string)" shall be 0x243d8ac (see also result of P *$ in gdb),
but value of the first argument (PTR) of STROUT is 0x2469648.
This is the reason why Emacs crashed.
But, why did this happen? Memory leak?
Regards,
Guanpeng Xu
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/