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

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

Re: custom mode-line face makes Emacs freeze up


From: Stephen Berman
Subject: Re: custom mode-line face makes Emacs freeze up
Date: Wed, 27 Oct 2004 23:56:54 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/21.3.50 (gnu/linux)

On Wed, 27 Oct 2004 06:48:34 -0400 Richard Stallman <address@hidden> wrote:

>     So far the freeze has happened with every pair of files I've tried
>     with Ediff.  I've noticed two additional data points: 
>
> Please specify ONE specific pair of files that fails.
> That is far more useful than what you're doing, which is
> trying to describe the envelope of failure in general terms.
> The latter is not very useful.

Here's a specific pair: Type `C-x C-f test1', `test1', `C-x C-s', `C-x
C-f test2', `test2', `C-x C-s'.  Now customize mode-line face as
described previously (width=narrow, height=120, overline=on), then
invoke Ediff on test1 and test2.  Now Emacs goes into an infinite loop
for me.

> Your info about the bounds of the loop is useful.
> It is really strange that it returns 1 after starting
> redisplay from point.  If you can find out things like
> what value move_it_vertically_backward found
> (it is in `it'), that might shed light on the problem.

I'm not experienced at debugging Emacs C code, so if the following is
irrelevant, please tell me what to do.  At the point in the program
execution where the loop begins, I started stepping through the
program.  This went on for many lines without getting to
move_it_vertically_backward, so I started using `next'.  This also
went on for many lines, until suddenly `next' failed to return.  Then
I typed `C-z' and printed the value of `it'; here it is, with the
lines preceding the failed return:

(gdb) next
2265          it->start = it->current;
(gdb) next
2268          reseat (it, it->current.pos, 1);
(gdb) next
2265          it->start = it->current;
(gdb) next
2268          reseat (it, it->current.pos, 1);
(gdb) next
        
    
Program received signal SIGTSTP, Stopped (user).
redisplay_window (window=141912204, just_this_one_p=0) at xdisp.c:12021
12021     move_it_vertically_backward (&it, centering_position);
(gdb) p it
$26 = {window = 141912204, w = 0x8756888, f = 0x89a8510, 
  method = 0x809a620 <next_element_from_buffer>, stop_charpos = 16, 
  end_charpos = 16, s = 0x0, string_nchars = 0, region_beg_charpos = -1, 
  region_end_charpos = -1, redisplay_end_trigger_charpos = 0, multibyte_p = 1, 
  header_line_p = 0, string_from_display_prop_p = 0, dp = 0x8538690, 
  dpvec = 0x0, dpend = 0x0, dpvec_char_len = 0, saved_face_id = 0, 
  ctl_chars = {0 <repeats 16 times>}, start = {pos = {charpos = 1, 
      bytepos = 1}, overlay_string_index = -1, string_pos = {charpos = -1, 
      bytepos = -1}, dpvec_index = -1}, current = {pos = {charpos = 1, 
      bytepos = 1}, overlay_string_index = -1, string_pos = {charpos = -1, 
      bytepos = -1}, dpvec_index = -1}, overlay_strings = {0, 0, 0}, 
  n_overlay_strings = 0, string = 137615065, stack = {{stop_charpos = 0, 
      face_id = 0, string = 0, pos = {pos = {charpos = 0, bytepos = 0}, 
        overlay_string_index = 0, string_pos = {charpos = 0, bytepos = 0}, 
        dpvec_index = 0}, end_charpos = 0, string_nchars = 0, 
      area = LEFT_MARGIN_AREA, multibyte_p = 0, 
      string_from_display_prop_p = 0, display_ellipsis_p = 0, slice = {x = 0, 
        y = 0, width = 0, height = 0}, space_width = 0, voffset = 0, 
      font_height = 0}, {stop_charpos = 0, face_id = 0, string = 0, pos = {
        pos = {charpos = 0, bytepos = 0}, overlay_string_index = 0, 
        string_pos = {charpos = 0, bytepos = 0}, dpvec_index = 0}, 
      end_charpos = 0, string_nchars = 0, area = LEFT_MARGIN_AREA, 
      multibyte_p = 0, string_from_display_prop_p = 0, display_ellipsis_p = 0, 
      slice = {x = 0, y = 0, width = 0, height = 0}, space_width = 0, 
      voffset = 0, font_height = 0}}, sp = 0, 
  selective_display_ellipsis_p = 1, ctl_arrow_p = 1, selective = 0, 
  what = IT_CHARACTER, face_id = 0, face_box_p = 0, start_of_box_run_p = 0, 
  end_of_box_run_p = 0, overlay_strings_at_end_processed_p = 0, 
  glyph_not_available_p = 0, starts_in_middle_of_char_p = 0, 
  face_before_selective_p = 0, constrain_row_ascent_descent_p = 0, 
  base_face_id = 0, c = 0, len = 0, cmp_id = 0, cmp_len = 0, 
  char_to_display = 0, image_id = 0, slice = {x = 137615065, y = 137615065, 
    width = 137615065, height = 137615065}, space_width = 137615065, 
  voffset = 0, font_height = 137615065, object = 141405076, position = {
    charpos = 1, bytepos = 1}, truncate_lines_p = 0, tab_width = 8, 
  truncation_pixel_width = 0, continuation_pixel_width = 0, 
  first_visible_x = 0, last_visible_x = 119, last_visible_y = 11, 
  extra_line_spacing = 0, override_ascent = -1, override_descent = 0, 
  override_boff = 0, glyph_row = 0x0, area = TEXT_AREA, nglyphs = 0, 
  pixel_width = 0, ascent = 0, descent = 0, max_ascent = 0, max_descent = 0, 
  phys_ascent = 0, phys_descent = 0, max_phys_ascent = 0, 
  max_phys_descent = 0, current_x = 0, continuation_lines_width = 0, 
  current_y = 0, first_vpos = 0, vpos = 0, hpos = 0, 
  left_user_fringe_bitmap = 0, right_user_fringe_bitmap = 0, 
  left_user_fringe_face_id = 0, right_user_fringe_face_id = 0}

> However, it would be really good for us to be able to
> make it fail.

I hope you can!





reply via email to

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