emacs-devel
[Top][All Lists]
Advanced

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

Re: xdisp.c problem?


From: Tak Ota
Subject: Re: xdisp.c problem?
Date: Thu, 30 Jan 2003 15:56:20 -0800 (PST)

Thu, 30 Jan 2003 13:13:22 -0800 (PST): Tak Ota <address@hidden> wrote:

> Thu, 30 Jan 2003 12:51:03 +0900 (JST): Kenichi Handa <address@hidden> wrote:
> 
> > In article <address@hidden>, Tak Ota <address@hidden> writes:
> > >>  > 2003-01-29  Kenichi Handa  <address@hidden>
> > >>  >       * xdisp.c (set_cursor_from_row): Pay attention to string display
> > >>  >       properties.
> > >>  
> > >>  > This change causes emacs to get hung when I try to view a message of
> > >>  > the following type.  Switching back to the old xdisp.c eliminates the
> > >>  > problem.
> > >>  
> > >>  > Content-Type: text/html; charset="euc-kr"
> > >>  
> > >>  Could you show me exactly what to do to reproduce that bug?
> > 
> > > I tried to isolate the case from the entire circumstance, which is
> > > using Mew package to view email messages.  I was not successful.  It
> > > happens only when I try to view certain messages.  C-g does not break
> > > emacs once it gets trapped in this situation.  There is one more fact
> > > I have gained by tracing elisp execution.  The last lisp function
> > > called is `overlay-put' and the emacs stops responding after that.  I
> > > used C debugger to follow the trace from entry to `overlay-put' but
> > > could not conclusion anything meaningful.
> > 
> > Please check if Emacs is in an infinite loop or not, and if
> > it's in an infinite loop, find in which part of code it's
> > executing.
> 
> Yes, Emacs is looping infinitely.  It is spinning busily inside
> command_loop_2 which calls internal_condition_case which calls
> command_loop_1 which calls read_key_sequence.  Somewhere down in
> read_key_sequence is thrown an exception.  The longjump lands back in
> setjmp in the internal_condition_case which returns to
> command_loop_2.  This repeats forever.
> 
> I tried to find what exception it is and from where in the downstream
> of read_key_sequence it is thrown, then I ran out of my time for now.
> I'll continue the pursuit later.

Here is the complete trace to where unwind_to_catch brings us back to
internal_condition_case and the descending starts all over again.  The
function set_cursor_from_row is in the trace.  It was not a simple
loop but continuous signal generation caused by the change to
internal_condition_case.

Since I'm not familiar with your change I'll simply keep the debugger
as is for a while.  Let me know if you want to examine values of
specific variables.

-Tak

unwind_to_catch() line 1172
Fsignal(int 0x112b125c, int 0x519a46dc) line 1547 + 12 bytes
args_out_of_range(int 0x00000000, int 0x00000000) line 140 + 35 bytes
validate_interval_range(int 0x41942000, int * 0x0082f024, int * 0x0082f024, int 
0x00000000) line 151 + 8 bytes
Ftext_properties_at(int 0x00000000, int 0x41942000) line 585 + 16 bytes
get_char_property_and_overlay(int 0x00000000, int 0x112d38ac, int 0x0082f030, 
int * 0x00000000) line 688 + 12 bytes
Fnext_single_char_property_change(int 0x00000000, int 0x112d38ac, int 
0x11297404, int 0x000006f5) line 802
set_cursor_from_row(window * 0x019f9400, glyph_row * 0x00000000, glyph_matrix * 
0x01a85000, int 0x00000000, int 0x00000000, int 0x00000000, int 0x00000000) 
line 9527 + 24 bytes
display_line(it * 0x01b0cc3c) line 13577 + 22 bytes
try_window(int 0x419f9400, text_pos {...}) line 10978 + 12 bytes
redisplay_window(int 0x419f9400, int 0x00000000) line 10617 + 10 bytes
redisplay_window_0(int 0x419f9400) line 9437 + 10 bytes
internal_condition_case_1(int (void)* 0x01046997 redisplay_window_0(int), int 
0x419f9400, int 0x512c4654, int (void)* 0x01046980 
redisplay_window_error(void)) line 1392 + 53 bytes
redisplay_windows(int 0x4154a400) line 9418 + 29 bytes
redisplay_windows(int 0x419f9000) line 9408 + 6 bytes
redisplay_internal(int 0x00000000) line 9007 + 8 bytes
redisplay() line 8433 + 7 bytes
read_char(int 0x00000001, int 0x00000003, int * 0x0082fc9c, int 0x11297404, int 
* 0x0082fcd4) line 2430
read_key_sequence(int * 0x0082fd7c, int 0x0000001e, int 0x11297404, int 
0x00000000, int 0x00000001, int 0x00000001) line 8533 + 36 bytes
command_loop_1() line 1475 + 32 bytes
internal_condition_case(int (void)* 0x0100e1da command_loop_1(void), int 
0x112b1214, int (void)* 0x0100de6e cmd_error(void)) line 1352
command_loop_2() line 1270 + 21 bytes
internal_catch(int 0x112a67c4, int (void)* 0x0100e0e2 command_loop_2(void), int 
0x11297404) line 1112 + 6 bytes
command_loop() line 1254
recursive_edit_1() line 969 + 5 bytes
Frecursive_edit() line 1026
main() line 1659 + 5 bytes
EMACS! mainCRTStartup + 180 bytes
KERNEL32! 77ea847c()




reply via email to

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