Reiner Steib <[EMAIL PROTECTED]> writes: > On Tue, Aug 30 2005, Reiner Steib wrote: > >> On Tue, Aug 30 2005, Kim F. Storm wrote: >> >>> Reiner Steib <[EMAIL PROTECTED]> 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):
Is this crash repeatable? And the same crash does NOT occur with GC checking enabled? Very wierd. Anything special in the frame? > > ,---- > | 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/ > > -- Kim F. Storm <[EMAIL PROTECTED]> http://www.cua.dk _______________________________________________ Emacs-pretest-bug mailing list [email protected] http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug
