emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: crashes on x86_64


From: Reiner Steib
Subject: Re: crashes on x86_64
Date: Thu, 01 Sep 2005 19:40:01 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

On Tue, Aug 30 2005, Reiner Steib wrote:

> On Tue, Aug 30 2005, Kim F. Storm wrote:
>
>> Reiner Steib <address@hidden> writes:
> [...]
>> In lisp.h, can you try to enable extended GC checking by
>> changing the 0 to 1 in the following line in lisp.h:
> [...]
>> and try again.
>
> Done.  I will report when I get a new crash.

With extended GC checking enabled, I didn't get a crash with normal
use within 2 days.

But the checking makes Emacs quite unresponsive (even on this Athlon
3500+ machine).  So I reverted it and compiled again.  Then I soon got
a very similar crash when creating many, many new frames (using my
shortcut key for `make-frame-command' repeatedly):

,----
| Program received signal SIGSEGV, Segmentation fault.
| [Switching to Thread 182940272320 (LWP 8221)]
| make_uninit_multibyte_string (nchars=36, nbytes=36)
|     at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/alloc.c:1884
| 1884      string_free_list = NEXT_FREE_LISP_STRING (s);
| (gdb) bt full
| #0  make_uninit_multibyte_string (nchars=36, nbytes=36)
|     at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/alloc.c:1884
|         string = Variable "string" is not available.
| (gdb) xbacktrace 
| "set-face-attribute-from-resource"
| "set-face-attributes-from-resources"
| "make-face-x-resource-internal"
| "byte-code"
| "face-set-after-frame-default"
| "x-create-frame-with-faces"
| "make-frame"
| "make-frame-command"
| "call-interactively"
| (gdb) q
`----

After this, I recompiled with...

,----[ src/lisp.h ]
| #if 1
| /* Define this temporarily to hunt a bug.  If defined, the size of
|    strings is redundantly recorded in sdata structures so that it can
|    be compared to the sizes recorded in Lisp strings.  */
| 
| #define GC_CHECK_STRING_BYTES 1
| 
| /* Define this to check for short string overrun.  */
| 
| #define GC_CHECK_STRING_OVERRUN 1
| 
| /* Define this to check the string free list.  */
| 
| #define GC_CHECK_STRING_FREE_LIST 1
| 
| /* Define this to check for malloc buffer overrun.  */
| 
| #define XMALLOC_OVERRUN_CHECK 0
| 
| /* Define this to check for errors in cons list.  */
| /* #define GC_CHECK_CONS_LIST 1 */
| 
| #endif /* 0 */
`----

... and got a crash when creating many, many frames:

,----
| (gdb) r -name Gnus -xrm 'Emacs.toolBar:1'
| Starting program: [...]/x86_64/src/emacs -name Gnus -xrm 'Emacs.toolBar:1'
| [Thread debugging using libthread_db enabled]
| [New Thread 182940272320 (LWP 28901)]
| Detaching after fork from child process 28902.
| Detaching after fork from child process 28907.
| 
| Program received signal SIGSEGV, Segmentation fault.
| [Switching to Thread 182940272320 (LWP 28901)]
| redisplay_internal (preserve_echo_area=Variable "preserve_echo_area" is not 
available.
| )   
|     at [...]/emacs/src/xdisp.c:10684
| 10684                 mark_window_display_accurate (f->root_window, 1);
| (gdb) bt full
| #0  redisplay_internal (preserve_echo_area=Variable "preserve_echo_area" is 
not available.
| )
|     at [...]/emacs/src/xdisp.c:10684
|         f = (struct frame *) 0x400000000000043f
|         w = (struct window *) 0x1bee5a0
|         f = Variable "f" is not available.
| (gdb) xbacktrace 
| (gdb) p w
| $1 = (struct window *) 0x1bee5a0
| (gdb) p f
| $2 = (struct frame *) 0x400000000000043f
| (gdb) pr w
| #<EMACS BUG: INVALID DATATYPE (0x07) Save your buffers immediately and please 
report this bug>
| (gdb) pr f
| #<EMACS BUG: INVALID DATATYPE (0x07) Save your buffers immediately and please 
report this bug>
`----

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/




reply via email to

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