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

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

Re: Ediff frequently crashes emacs.


From: Peter Seibel
Subject: Re: Ediff frequently crashes emacs.
Date: Sun, 03 Apr 2005 17:37:06 -0700
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

address@hidden (Kim F. Storm) writes:

> Peter Seibel <address@hidden> writes:
>
>> Okay, here you go:
>
>> (gdb) xbacktrace
>> "internal-lisp-face-p"
>> "facep"
>> "check-face"
>> "face-name"
>> "ediff-set-fine-diff-properties-in-one-buffer"
>
> Now we are getting closer!!!
>
> Unfortunately, not quite close enough, as I don't see any of the
> involved functions modifying anything related.  So I have just
> installed patches to alloc.c and eval.c to check the cons list even
> more rigidly.
>
> Can you please update from CVS and rerun the test.
> Include bt and xbacktrace in the report.

I haven't had a chance to do this yet. (And probably won't for a
while--I don't have "a test" that I run. I just use it and every so
often it crashes. However with GC_CHECK_CONS_LIST enabled, Emacs runs
so slowly that it's really getting in the way of my getting my actual
work done. I.e. I get more done, in the short run anyway, saving often
and living with the occasional crashes.)

Anyway, here's another flavor of crash that I've seen a couple times
and which just happened again in an Emacs I built this morning with
#if 1 but without GC_CHECK_CONS_LIST:

address@hidden src]$ gdb emacs
GNU gdb Red Hat Linux (5.1.90CVS-5)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
DISPLAY = :0
TERM = xterm
Breakpoint 1 at 0x80d50da: file emacs.c, line 457.
Breakpoint 2 at 0x80b920c: file xterm.c, line 7778.
(gdb) run
Starting program: /usr2/cvs/emacs/src/emacs -geometry 80x40+0+0

Program received signal SIGSEGV, Segmentation fault.
string_bytes (s=0xefbeadde) at alloc.c:1747
1747      int nbytes = (s->size_byte < 0 ? s->size & ~ARRAY_MARK_FLAG : 
s->size_byte);
(gdb) bt
#0  string_bytes (s=0xefbeadde) at alloc.c:1747
#1  0x0811a293 in check_sblock (b=0x8fe8f20) at alloc.c:1774
#2  0x0811a43a in allocate_string () at alloc.c:1895
#3  0x0811ad4d in make_uninit_multibyte_string (nchars=11, nbytes=11)
    at alloc.c:2452
#4  0x0811ad20 in make_uninit_string (length=11) at alloc.c:2433
#5  0x08134117 in concat (nargs=2, args=0xbfffeae0, target_type=Lisp_String, 
    last_special=0) at fns.c:660
#6  0x08133b65 in Fconcat (nargs=2, args=0xbfffeae0) at fns.c:444
#7  0x08154a19 in Fbyte_code (bytestr=140339179, vector=141351196, maxdepth=5)
    at bytecode.c:1057
#8  0x0812feaf in funcall_lambda (fun=141351476, nargs=0, 
    arg_vector=0xbfffec14) at eval.c:2974
#9  0x0812fa85 in Ffuncall (nargs=1, args=0xbfffec10) at eval.c:2843
#10 0x08154208 in Fbyte_code (bytestr=140339147, vector=141350788, maxdepth=5)
    at bytecode.c:686
#11 0x0812feaf in funcall_lambda (fun=141351068, nargs=0, 
    arg_vector=0xbfffed24) at eval.c:2974
#12 0x0812fa85 in Ffuncall (nargs=1, args=0xbfffed20) at eval.c:2843
#13 0x08154208 in Fbyte_code (bytestr=140338507, vector=141350124, maxdepth=7)
    at bytecode.c:686
#14 0x0812feaf in funcall_lambda (fun=141350660, nargs=0, 
    arg_vector=0xbfffee44) at eval.c:2974
#15 0x0812fa85 in Ffuncall (nargs=1, args=0xbfffee40) at eval.c:2843
#16 0x08154208 in Fbyte_code (bytestr=141567811, vector=141569308, maxdepth=5)
    at bytecode.c:686
#17 0x0812feaf in funcall_lambda (fun=141569772, nargs=0, 
    arg_vector=0xbfffef64) at eval.c:2974
#18 0x0812fa85 in Ffuncall (nargs=1, args=0xbfffef60) at eval.c:2843
#19 0x08154208 in Fbyte_code (bytestr=141593675, vector=141600340, maxdepth=5)
    at bytecode.c:686
#20 0x0812feaf in funcall_lambda (fun=141600700, nargs=2, 
    arg_vector=0xbffff084) at eval.c:2974
#21 0x0812fa85 in Ffuncall (nargs=3, args=0xbffff080) at eval.c:2843
#22 0x08154208 in Fbyte_code (bytestr=141593755, vector=141600836, maxdepth=3)
    at bytecode.c:686
#23 0x0812feaf in funcall_lambda (fun=141601092, nargs=1, 
    arg_vector=0xbffff1c4) at eval.c:2974
#24 0x0812fa85 in Ffuncall (nargs=2, args=0xbffff1c0) at eval.c:2843
#25 0x0812c5a1 in Fcall_interactively (function=141550185, 
    record_flag=137240609, keys=137299580) at callint.c:884
#26 0x080e1d39 in Fcommand_execute (cmd=141550185, record_flag=137240609, 
    keys=137240609, special=137240609) at keyboard.c:9706
#27 0x080d87bd in command_loop_1 () at keyboard.c:1796
#28 0x0812dfd2 in internal_condition_case (bfun=0x80d7a58 <command_loop_1>, 
    handlers=137304041, hfun=0x80d75fc <cmd_error>) at eval.c:1385
    arg_vector=0xbffff084) at eval.c:2974
#21 0x0812fa85 in Ffuncall (nargs=3, args=0xbffff080) at eval.c:2843
#22 0x08154208 in Fbyte_code (bytestr=141593755, vector=141600836, maxdepth=3)
    at bytecode.c:686
#23 0x0812feaf in funcall_lambda (fun=141601092, nargs=1, 
    arg_vector=0xbffff1c4) at eval.c:2974
#24 0x0812fa85 in Ffuncall (nargs=2, args=0xbffff1c0) at eval.c:2843
#25 0x0812c5a1 in Fcall_interactively (function=141550185, 
    record_flag=137240609, keys=137299580) at callint.c:884
#26 0x080e1d39 in Fcommand_execute (cmd=141550185, record_flag=137240609, 
    keys=137240609, special=137240609) at keyboard.c:9706
#27 0x080d87bd in command_loop_1 () at keyboard.c:1796
#28 0x0812dfd2 in internal_condition_case (bfun=0x80d7a58 <command_loop_1>, 
    handlers=137304041, hfun=0x80d75fc <cmd_error>) at eval.c:1385
---Type <return> to continue, or q <return> to quit---
#29 0x080d78e2 in command_loop_2 () at keyboard.c:1323
#30 0x0812db3f in internal_catch (tag=137297257, 
    func=0x80d78c4 <command_loop_2>, arg=137240609) at eval.c:1144
#31 0x080d7871 in command_loop () at keyboard.c:1302
#32 0x080d73bb in recursive_edit_1 () at keyboard.c:995
#33 0x080d74e3 in Frecursive_edit () at keyboard.c:1056
#34 0x080d637b in main (argc=3, argv=0xbffff984) at emacs.c:1767
#35 0x42017499 in __libc_start_main () from /lib/i686/libc.so.6
(gdb) xbacktrace
"ediff-make-narrow-control-buffer-id"
"ediff-refresh-control-frame"
"ediff-refresh-mode-lines"
"ediff-recenter"
"ediff-diff-to-diff"
"ediff-copy-A-to-B"
"call-interactively"
(gdb) 

> Have you made any local customizations of ediff faces or anything
> similar? Please include a copy.

Not that I'm aware of.
>
>
> It might be byte-compiler related, but it is hard to say.
>
> What does
>      ls -l lisp/edif* lisp/fac*
> print?

-rw-r--r--    1 peter    peter       50190 Feb 21 14:53 lisp/ediff-diff.el
-rw-rw-r--    1 peter    peter       33458 Apr  3 14:11 lisp/ediff-diff.elc
-rw-r--r--    1 peter    peter       54617 Feb 21 14:53 lisp/ediff.el
-rw-rw-r--    1 peter    peter       37887 Apr  3 14:11 lisp/ediff.elc
-rw-rw-r--    1 peter    peter       13416 Sep  1  2003 lisp/ediff-help.el
-rw-rw-r--    1 peter    peter       11791 Apr  3 14:11 lisp/ediff-help.elc
-rw-r--r--    1 peter    peter       14457 Apr  1 15:11 lisp/ediff-hook.el
-rw-rw-r--    1 peter    peter        9026 Apr  3 14:11 lisp/ediff-hook.elc
-rw-r--r--    1 peter    peter       72452 Feb 21 14:53 lisp/ediff-init.el
-rw-rw-r--    1 peter    peter       67839 Apr  3 14:11 lisp/ediff-init.elc
-rw-rw-r--    1 peter    peter       14498 Sep  1  2003 lisp/ediff-merg.el
-rw-rw-r--    1 peter    peter       15810 Apr  3 14:11 lisp/ediff-merg.elc
-rw-r--r--    1 peter    peter       89393 Feb 21 14:53 lisp/ediff-mult.el
-rw-rw-r--    1 peter    peter       58781 Apr  3 14:11 lisp/ediff-mult.elc
-rw-rw-r--    1 peter    peter       29234 Jan  3  2004 lisp/ediff-ptch.el
-rw-rw-r--    1 peter    peter       18492 Apr  3 14:11 lisp/ediff-ptch.elc
-rw-rw-r--    1 peter    peter      153878 Feb 19  2004 lisp/ediff-util.el
-rw-rw-r--    1 peter    peter      122075 Apr  3 14:11 lisp/ediff-util.elc
-rw-rw-r--    1 peter    peter       11003 Sep  1  2003 lisp/ediff-vers.el
-rw-rw-r--    1 peter    peter        5957 Apr  3 14:11 lisp/ediff-vers.elc
-rw-rw-r--    1 peter    peter       46599 Sep  1  2003 lisp/ediff-wind.el
-rw-rw-r--    1 peter    peter       30666 Apr  3 14:11 lisp/ediff-wind.elc
-rw-r--r--    1 root     root        29694 Mar  8 21:27 lisp/facemenu.el
-rw-rw-r--    1 peter    peter       22500 Apr  3 14:12 lisp/facemenu.elc
-rw-r--r--    1 root     root        85123 Mar  8 21:27 lisp/faces.el
-rw-rw-r--    1 peter    peter       70201 Apr  3 14:12 lisp/faces.elc

> What happens if you don't use byte-compiled ediff?
> Try adding this to your .emacs and rerun the test:
>
> (load "ediff-init.el")
> (load "ediff-diff.el")

Haven't tried this yet. I'll do that now.

-Peter

-- 
Peter Seibel                                     address@hidden

         Lisp is the red pill. -- John Fraser, comp.lang.lisp




reply via email to

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