[Top][All Lists]
[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/
- Re: crashes on x86_64,
Reiner Steib <=