emacs-devel
[Top][All Lists]
Advanced

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

Mysterious redisplay problem and a trap in xdisp.c


From: Kim F. Storm
Subject: Mysterious redisplay problem and a trap in xdisp.c
Date: Thu, 7 Feb 2002 12:59:30 +0000 (GMT)

I was trying to track down a redisplay problem I've seen lately with
the CVS emacs:

While typing in some text in a buffer, emacs suddenly decides to
insert a new line instead of the character I typed.  But if I do C-l,
there is only one line, and the character I typed magically reappears.

I've only seen this with column-number-mode turned on, so the rest of
you may not have noticed.

When this happens, the column number continues to increment relative
to the original line start (and the bogus line wrap), but continuation
glyphs are shown "correctly" in the fringe when the second line
reaches the right margin and wraps into the third line.

Anyway, at some point, emacs decided to crash (seemingly immediately after
inserting one of those bogus newlines).  Unfortunately, that specific
incarnation of emacs was not running under GDB, but I have to core file
if there is anything specific you want me to look into...:


(gdb) bt
#0  0x402c9d41 in __kill () from /lib/libc.so.6
#1  0x80cd041 in fatal_error_signal (sig=6) at emacs.c:377
#2  0x402c9c68 in __restore () at 
../sysdeps/unix/sysv/linux/i386/sigaction.c:127
#3  0x806b46e in find_first_unchanged_at_end_row (w=0x8b1ce10, 
delta=0xbfffea40, delta_bytes=0xbfffea44) at xdisp.c:11208
#4  0x806be26 in try_window_id (w=0x8b1ce10) at xdisp.c:11624
#5  0x80693e9 in redisplay_window (window=1219612176, just_this_one_p=1) at 
xdisp.c:10276
#6  0x8066db4 in redisplay_window_1 (window=1219612176) at xdisp.c:9266
#7  0x811db48 in internal_condition_case_1 (bfun=0x8066d94 
<redisplay_window_1>, arg=1219612176, handlers=405306396,
    hfun=0x8066d50 <redisplay_window_error>) at eval.c:1338
#8  0x8066666 in redisplay_internal (preserve_echo_area=0) at xdisp.c:8898
#9  0x806536e in redisplay () at xdisp.c:8278
#10 0x80d0c1d in read_char (commandflag=1, nmaps=4, maps=0xbffff5cc, 
prev_event=405209980, used_mouse_menu=0xbffff614)
    at keyboard.c:2286
#11 0x80d713c in read_key_sequence (keybuf=0xbffff710, bufsize=30, 
prompt=405209980, dont_downcase_last=0,
    can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:8289
#12 0x80cf87c in command_loop_1 () at keyboard.c:1441
#13 0x811da54 in internal_condition_case (bfun=0x80cf5bc <command_loop_1>, 
handlers=405306396, hfun=0x80cf254 <cmd_error>)
    at eval.c:1298
#14 0x80cf4c5 in command_loop_2 () at keyboard.c:1247
#15 0x811d652 in internal_catch (tag=405267724, func=0x80cf4a8 
<command_loop_2>, arg=405209980) at eval.c:1058
#16 0x80cf47f in command_loop () at keyboard.c:1226
#17 0x80cf050 in recursive_edit_1 () at keyboard.c:952
#18 0x80cf15d in Frecursive_edit () at keyboard.c:1008
#19 0x80ce238 in main (argc=1, argv=0xbffffc54, envp=0xbffffc5c) at emacs.c:1607
(gdb) up 3
#3  0x806b46e in find_first_unchanged_at_end_row (w=0x8b1ce10, 
delta=0xbfffea40, delta_bytes=0xbfffea44) at xdisp.c:11208
11208               abort ();
(gdb) list
11203         /* Search backward from ROW for a row displaying a line that
11204            starts at a minimum position >= last_unchanged_pos_old.  */
11205         for (; row > first_text_row; --row)
11206           {
11207             if (!row->enabled_p || !MATRIX_ROW_DISPLAYS_TEXT_P (row))
11208               abort ();
11209
11210             if (MATRIX_ROW_START_CHARPOS (row) >= last_unchanged_pos_old)
11211               row_found = row;
11212           }



-- 
Kim F. Storm  <address@hidden>




reply via email to

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