The answer is: yes, I can. I applied this patch to my copy of 21.1.
I started xemacs -vanilla. When I attempted to edit the latest tkman
Makefile, KA-BOOM! Here's the gdb backtrace. Lemme know if you want
to see anything else.
Fatal error: assertion failed, file /usr/local/src/xemacs-21.1-19990826/src/redisplay.c,
line 6257, 0
Fatal error (6).
#0 0x40246811 in kill () from /lib/libc.so.6
#1 0x80a3704 in fatal_error_signal ()
#2 0xbfffefd4 in ?? ()
#3 0x4024784f in abort () at ../sysdeps/generic/abort.c:83
#4 0x80a3649 in assert_failed ()
#5 0x8122165 in update_internal_cache_list ()
#6 0x8123086 in update_line_start_cache ()
#7 0x812108c in redisplay_window ()
#8 0x81211cb in redisplay_frame ()
#9 0x812131c in redisplay_device ()
#10 0x8121539 in redisplay_without_hooks ()
#11 0x8125fa2 in redisplay ()
#12 0x80c75ba in Fnext_event ()
#13 0x808df1e in Fcommand_loop_1 ()
#14 0x808e155 in command_loop_1 ()
#15 0x80ab276 in condition_case_1 ()
#16 0x808e2b7 in command_loop_2 ()
#17 0x80ab144 in internal_catch ()
#18 0x808dc2e in initial_command_loop ()
#19 0x80a2154 in sort_args ()
#20 0x80a3923 in main ()
Here's my installation info:
uname -a: Linux mithril 2.2.11 #1 SMP Thu Aug 12 00:21:53 EDT 1999 i686 unknown
../../../src/xemacs-21.1.6/configure '--prefix=/usr/local/xemacs-21.1.6'
'--with-gcc' '--site-includes=/usr/local/include'
'--site-libraries=/usr/local/lib'
'--site-runtime-libraries=/usr/local/lib' '--infopath=/usr/local/info'
'--with-mule=no' '--compiler=/usr/local/egcs-snapshot/bin/gcc'
'--cflags=-O3 -malign-double -pipe -march=pentiumpro -mcpu=pentiumpro -ffast-math
-fno-exceptions' '--with-dialogs=no'
'--package-path=/usr/local/xemacs-packages'
That's gcc-2.95.1, BTW.
- vin
>>>> On Thu, 12 Aug 1999, Jan Vroonhof
<vroonhof(a)math.ethz.ch> said:
Jan> P.S. Can you trigger the abort in this patch?
>
> An update:
>
> I've been running with your patched version for a while, and have
> triggered the "cur_elt >= 0" assertion again a couple of times, but
> have not triggered your assertion.
Jan> Ah, %$#@%!#$. There is one ! too many in this patch.
Jan> Here is what I meant
Jan> Index: redisplay.c
Jan> ===================================================================
Jan> RCS file: /usr/CVSroot/XEmacs/xemacs-20/src/redisplay.c,v
Jan> retrieving revision 1.57
Jan> diff -u -u -r1.57 redisplay.c
Jan> --- redisplay.c 1999/05/12 14:29:13 1.57
Jan> +++ redisplay.c 1999/08/12 19:37:53
Jan> @@ -6245,6 +6245,19 @@
Jan> lsc.end = dl->end_bufpos;
Jan> lsc.height = dl->ascent + dl->descent;
Jan> + {
Jan> + struct buffer *buf = XBUFFER(w->buffer);
Jan> + /* Paranaoid line start cache check */
Jan> + if (! (lsc.start <= BUF_BEGV(buf) ||
Jan> + BUF_FETCH_CHAR(buf,lsc.start - 1) == (Emchar) '\n'))
Jan> + {
Jan> + fprintf(stderr,"Wrong stuff in line start cache!\n"
Jan> + "Supposedly begins at: %10s",
Jan> + (char *)BUF_BYTE_ADDRESS(buf,lsc.start));
Jan> + assert(0);
Jan> + }
Jan> + }
Jan> +
Jan> Dynarr_add (internal_cache, lsc);
Jan> }
Jan> }
Jan> However there is no need to run that. For me it crashes displaying the
Jan> splash screen. The reason: a wrapped line.
Jan> (Sorry if this gets technical)
Jan> The problem is that \
Jan> when a line is wrap \
Jan> ped like this
Jan> Then there are 3 display lines and the second 2 don't actually start at
Jan> a new line in the buffer, just in the display.
Jan> Previous line_start_cache rediplay crashes have all been of the type
Jan> where code actually assumed that the line_start_cache actually contained lines
Jan> starting at "\n", and we have fixed the triggers for that.
Jan> It seems now that we better check these assumptions.
Jan> i'm too tired now to have a real look. Gunnar Do you remember where
Jan> that problem occured, was it also at asssert(cur_elt>=0)?
Jan> Jan
Jan> BTW Hamish, does the reproduction recipe at the end of
Jan>
http://www.xemacs.org/list-archives/xemacs-beta/9903/msg00475.html
Jan> "work" for you?