emacs-devel
[Top][All Lists]
Advanced

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

Re: Emacs crashes, 07nov16


From: Robert J. Chassell
Subject: Re: Emacs crashes, 07nov16
Date: Sat, 24 Nov 2007 14:08:11 +0000 (UTC)

As I now expect, GNU Emacs crashes when I try to insert a Euro sign.
Here are two debugging sessions, with misc-fixed-medium 20 point
fonts, one ISO8859 and the other ISO10646, both with

    bt full
    p *s
    p *s->font
    p *s->font_info
    p s->char2b[0]
    l x_draw_glyph_string_foreground


Of a previous effort, address@hidden wrote

    This does not look like -O0.  You should not have any <value
    optimized out> in such a build.

Hmm ... I compiled in Emacs with
 (compile "time CFLAGS='-g -O0 -Wno-pointer-sign' make bootstrap"))
but maybe that was wrong.  (Should I have put the CFLAGS expression
after the `make'?)  

In this case, after changing -O2 to -O0 in three makefiles, I
evaluated:

 (compile "time make bootstrap")

Today's GNU Emacs CVS snapshot, Sat, 2007 Nov 24  11:43 UTC
GNU Emacs 23.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.12.1)
started in debugger 


First, 

    set args -i -q \
    --eval '(emacs-version t)' -bg DodgerBlue4 -fg white \
    -fn '-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO8859-1' \
    -geometry 80x44+545+43 -name '-q GNU Emacs in Debugger, font: fixed 20'

with the breakpoint at xterm.c:1374 
and after I evaluated  (x-synchronize t)  in the debuggee

As expected, this instance of Emacs did not crash until I visited my
test file, ~/foo.mail, which tried to insert a Euro sign.  Then:

(gdb) bt full
#0  x_draw_glyph_string_foreground (s=0xbfdb9c20) at xterm.c:1374
        char1b = 0xbfdb9c00 " \254"
        boff = 0
        i = 0
        x = 30
#1  0x080f5e1e in x_draw_glyph_string (s=0xbfdb9c20) at xterm.c:2731
        relief_drawn_p = 0
#2  0x08095ad1 in draw_glyphs (w=0x8678658, x=50, row=0x869e6bc, 
area=TEXT_AREA, start=0, end=2, hl=DRAW_NORMAL_TEXT, overlaps=0) at 
xdisp.c:19850
        head = (struct glyph_string *) 0xbfdb9c20
        tail = (struct glyph_string *) 0xbfdb9b70
        s = (struct glyph_string *) 0xbfdb9c20
        clip_head = (struct glyph_string *) 0x0
        clip_tail = (struct glyph_string *) 0x0
        last_x = 830
        area_width = 800
        x_reached = 50
        i = 2
        j = -1215156040
        f = (struct frame *) 0x86784d0
#3  0x0809a1c0 in x_write_glyphs (start=0x86c3e58, len=2) at xdisp.c:21149
        x = 160
        hpos = 0
#4  0x0805a8c7 in update_text_area (w=0x8678658, vpos=9) at dispnew.c:4446
        current_row = (struct glyph_row *) 0x86bdbb4
        desired_row = (struct glyph_row *) 0x869e6bc
        rif = (struct redisplay_interface *) 0x8231000
        changed_p = 0
#5  0x0805b099 in update_window_line (w=0x8678658, vpos=9, 
mouse_face_overwritten_p=0xbfdba0b0) at dispnew.c:4678
        current_row = (struct glyph_row *) 0x86bdbb4
        desired_row = (struct glyph_row *) 0x869e6bc
        rif = (struct redisplay_interface *) 0x8231000
        changed_p = 0
#6  0x0805a532 in update_window (w=0x8678658, force_p=0) at dispnew.c:4302
        vpos = 9
        i = 0
        end = (struct glyph_row *) 0x869fb8c
        mode_line_row = (struct glyph_row *) 0x869fb8c
        header_line_row = (struct glyph_row *) 0x0
        changed_p = 1
        mouse_face_overwritten_p = 0
        row = (struct glyph_row *) 0x869e6bc
        yb = 840
        n_updated = 0
        desired_matrix = (struct glyph_matrix *) 0x867c1a0
        paused_p = 0
        rif = (struct redisplay_interface *) 0x8231000
#7  0x08059c1b in update_window_tree (w=0x8678658, force_p=0) at dispnew.c:3995
        paused_p = 0
#8  0x08059a40 in update_frame (f=0x86784d0, force_p=0, inhibit_hairy_id_p=0) 
at dispnew.c:3923
        paused_p = 0
        root_window = (struct window *) 0x8678658
#9  0x0807fff9 in redisplay_internal (preserve_echo_area=0) at xdisp.c:11455
        f = (struct frame *) 0x86784d0
        tail = 140053117
        frame = 141001940
        w = (struct window *) 0x8678658
        f = (struct frame *) 0x86784d0
        pause = 0
        must_finish = 1
        tlbufpos = {
  charpos = 1, 
  bytepos = 1
}
        tlendpos = {
  charpos = 0, 
  bytepos = 0
}
        number_of_visible_frames = 1
        count = 2
        count1 = 4
        sf = (struct frame *) 0x86784d0
        polling_stopped_here = 1
        old_frame = 141001940
        consider_all_windows_p = 1
#10 0x0807e22f in redisplay () at xdisp.c:10629
No locals.
#11 0x08134fd5 in read_char (commandflag=1, nmaps=2, maps=0xbfdbac70, 
prev_event=138033353, used_mouse_menu=0xbfdbade8, end_time=0x0) at 
keyboard.c:2748
        c = 138033353
        count = 0
        jmpcount = 0
        local_getcjmp = {{
    __jmpbuf = {138068729, 1, 1698, 0, 138351048, -1076122840}, 
    __mask_was_saved = 136372559, 
    __saved_mask = {
      __val = {138335949, 138068729, 3218844712, 135961291, 11336, 138068729, 
143433244, 4294967295, 4294967295, 4294967295, 4294967295, 0 <repeats 21 times>}
    }
  }}
        save_jump = {{
    __jmpbuf = {1698, 1416, 0, 1418, 138351048, 11}, 
    __mask_was_saved = 138351048, 
    __saved_mask = {
      __val = {138033353, 3218844344, 1, 0, 1416, 3218844344, 136361940, 
138195985, 143433244, 3218844376, 136369000, 138351048, 1417, 138351048, 
136361734, 138351048, 138033353, 1, 1417, 0, 138033353, 3218844408, 136361940, 
138068729, 138033353, 138033353, 138033353, 138033353, 138220737, 3218844440, 
136361734, 138335949}
    }
  }}
        key_already_recorded = 0
        tem = 0
        save = 0
        previous_echo_area_message = 138033353
        also_record = 138033353
        reread = 0
        gcpro1 = {
  next = 0x82090ce, 
  var = 0x83f11c8, 
  nvars = 1417
}
        gcpro2 = {
  next = 0x88c9e1c, 
  var = 0x1, 
  nvars = -1076122968
}
        polling_stopped_here = 0
        orig_kboard = (struct kboard *) 0x8658560
#12 0x0813f7a3 in read_key_sequence (keybuf=0xbfdbafc4, bufsize=30, 
prompt=138033353, dont_downcase_last=0, can_return_switch_frame=1, 
fix_current_buffer=1) at keyboard.c:9455
        interrupted_kboard = (KBOARD *) 0x8658560
        interrupted_frame = (struct frame *) 0x86784d0
        key = -1076121960
        used_mouse_menu = 0
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        local_first_binding = 0
        from_string = 138033353
        count = 2
        t = 0
        echo_start = 0
        keys_start = 0
        nmaps = 2
        nmaps_allocated = 2
        defs = (Lisp_Object * volatile) 0xbfdbac50
        submaps = (Lisp_Object * volatile) 0xbfdbac70
        orig_local_map = 140050125
        orig_keymap = 138033353
        localized_local_map = 0
        first_binding = 0
        first_unbound = 31
        mock_input = 0
        fkey = {
  parent = 139600725, 
  map = 139600725, 
  start = 0, 
  end = 0
}
        keytran = {
  parent = 138025829, 
  map = 138025829, 
  start = 0, 
  end = 0
}
        indec = {
  parent = 139600733, 
  map = 139600733, 
  start = 0, 
  end = 0
}
        delayed_switch_frame = 138033353
        original_uppercase = 141038360
        original_uppercase_position = -1
        dummyflag = 0
        starting_buffer = (struct buffer *) 0x88c9e18
        fake_prefixed_keys = 138033353
        gcpro1 = {
  next = 0x8681318, 
  var = 0x83c35b2, 
  nvars = 138033353
}
#13 0x08132660 in command_loop_1 () at keyboard.c:1684
        cmd = 138384849
        lose = 32
        nonundocount = 0
        keybuf = {192, 48, -1217265840, -1208483852, -1076121568, -1221392172, 
-1076121516, -1208562464, 0, 0, 0, 0, -1208499652, -1076121568, -1076121292, 
-1472036457, 49, -1219986356, -1219991344, 134541582, -1472036458, 134541584, 
134541586, 0, 0, 1, 994, -1221392088, 0, -1076121524}
        i = 2
        no_direct = 0
        prev_modiff = 27
        prev_buffer = (struct buffer *) 0x83ab540
        already_adjusted = 0
#14 0x081b761a in internal_condition_case (bfun=0x813230e <command_loop_1>, 
handlers=138090753, hfun=0x8131cec <cmd_error>) at eval.c:1493
        val = 138278685
        c = {
  tag = 138033353, 
  val = 138033353, 
  next = 0xbfdbb1b0, 
  gcpro = 0x0, 
  jmp = {{
      __jmpbuf = {-1218674700, -1208484640, 0, -1076121224, -1553915775, 
585850862}, 
      __mask_was_saved = 0, 
      __saved_mask = {
        __val = {3218845684, 3086404832, 0, 3076292596, 140324248, 140346216, 
3086467644, 3218845632, 3218845908, 276967387, 49, 3074980940, 3074979964, 
134542368, 276967386, 3086287772, 134542372, 3218846320, 3086482656, 0, 
3074996844, 3076308992, 3218846320, 110932256, 3086483444, 134522752, 
3086485096, 3218846080, 3086422499, 3086485536, 3073575208, 1}
      }
    }}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 1, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
        h = {
  handler = 138090753, 
  var = 138033353, 
  chosen_clause = 140327419, 
  tag = 0xbfdbb0ac, 
  next = 0x0
}
#15 0x08132067 in command_loop_2 () at keyboard.c:1396
        val = 20
#16 0x081b70d6 in internal_catch (tag=138082313, func=0x8132044 
<command_loop_2>, arg=138033353) at eval.c:1229
        c = {
  tag = 138082313, 
  val = 138033353, 
  next = 0x0, 
  gcpro = 0x0, 
  jmp = {{
      __jmpbuf = {-1218674700, -1208484640, 0, -1076120968, -1553776511, 
585207790}, 
      __mask_was_saved = 0, 
      __saved_mask = {
        __val = {134921805, 104, 13, 0, 1, 2, 0, 3076297072, 0, 177, 22, 0, 0, 
0, 0, 0, 3078563137, 140331568, 3076297072, 3218846328, 135929634, 138218001, 
138219378, 138033353, 138065216, 140347928, 140348104, 3076297024, 138033353, 
138033353, 138219378, 138219378}
      }
    }}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 1, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
#17 0x0813201d in command_loop () at keyboard.c:1375
No locals.
#18 0x081318f9 in recursive_edit_1 () at keyboard.c:984
        count = 1
        val = -1076113695
#19 0x08131a67 in Frecursive_edit () at keyboard.c:1046
        count = 0
        buffer = 138033353
#20 0x08130339 in main (argc=15, argv=0xbfdbb724) at emacs.c:1777
        dummy = -1217265840
        stack_bottom_variable = 8 '\b'
        do_initial_setlocale = 1
        skip_args = 0
        rlim = {
  rlim_cur = 8388608, 
  rlim_max = 18446744073709551615
}
        no_loadup = 0
        junk = 0x0
(gdb) p *s
$1 = {
  x = 30, 
  y = 180, 
  ybase = 196, 
  width = 10, 
  background_width = 10, 
  height = 20, 
  left_overhang = 0, 
  right_overhang = 0, 
  f = 0x86784d0, 
  w = 0x8678658, 
  display = 0x862fb00, 
  window = 37748953, 
  row = 0x869e6bc, 
  area = TEXT_AREA, 
  char2b = 0xbfdb9c00, 
  nchars = 1, 
  hl = DRAW_NORMAL_TEXT, 
  face = 0x881fa68, 
  font = 0x881d0d8, 
  font_info = 0x8679fa8, 
  cmp = 0x0, 
  gidx = 0, 
  extends_to_end_of_line_p = 0, 
  background_filled_p = 0, 
  two_byte_p = 1, 
  font_not_found_p = 0, 
  stippled_p = 0, 
  for_overlaps = 0, 
  gc = 0x88c7f88, 
  first_glyph = 0x86c3e58, 
  img = 0x0, 
  slice = {
    x = 0, 
    y = 0, 
    width = 0, 
    height = 0
  }, 
  clip_head = 0x0, 
  clip_tail = 0x0, 
  next = 0xbfdb9b70, 
  prev = 0x0
}
(gdb) p *s->font
$2 = {
  ext_data = 0x83f92d0, 
  fid = 37749766, 
  direction = 0, 
  min_char_or_byte2 = 0, 
  max_char_or_byte2 = 255, 
  min_byte1 = 0, 
  max_byte1 = 255, 
  all_chars_exist = 0, 
  default_char = 0, 
  n_properties = 23, 
  properties = 0x88e0828, 
  min_bounds = {
    lbearing = 0, 
    rbearing = 0, 
    width = 10, 
    ascent = -3, 
    descent = -15, 
    attributes = 0
  }, 
  max_bounds = {
    lbearing = 9, 
    rbearing = 10, 
    width = 10, 
    ascent = 16, 
    descent = 4, 
    attributes = 0
  }, 
  per_char = 0xb6d7a000, 
  ascent = 16, 
  descent = 4
}
(gdb) p *s->font_info
$3 = {
  font = 0x881d0d8, 
  font_idx = 1, 
  name = 0x88cdf88 
"-misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1", 
  full_name = 0x89041c0 
"-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1", 
  charset = 244, 
  size = 10, 
  height = 20, 
  space_width = 10, 
  average_width = 10, 
  vertical_centering = 0, 
  encoding = "\000\377", '\0' <repeats 126 times>, '\001' <repeats 127 times>, 
  baseline_offset = 0, 
  relative_compose = 0, 
  default_ascent = 0, 
  font_encoder = 0x842c4f0
}
(gdb) p s->char2b[0]
$4 = {
  byte1 = 32 ' ', 
  byte2 = 172 '\254'
}
(gdb) l x_draw_glyph_string_foreground
1313    /* Draw the foreground of glyph string S.  */
1314    
1315    static void
1316    x_draw_glyph_string_foreground (s)
1317         struct glyph_string *s;
1318    {
1319      int i, x;
1320    
1321      /* If first glyph of S has a left box line, start drawing the text
1322         of S to the right of that box line.  */
(gdb) 



Second, instance of Emacs with iso10646:

    set args -i -q \
    --eval '(emacs-version t)' -bg DodgerBlue4 -fg white \
    -fn '-misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1' \
    -geometry 80x44+545+43 -name '-q GNU Emacs in Debugger, font: fixed 20'

with the breakpoint at xterm.c:1374 
and after I evaluated  (x-synchronize t)  in the debuggee

This instance of Emacs did not crash until I visited my
test file; then it did. 

(gdb) bt full
#0  x_draw_glyph_string_foreground (s=0xbfc2a290) at xterm.c:1374
        char1b = 0xbfc2a270 " \254"
        boff = 0
        i = 0
        x = 30
#1  0x080f5e1e in x_draw_glyph_string (s=0xbfc2a290) at xterm.c:2731
        relief_drawn_p = 0
#2  0x08095ad1 in draw_glyphs (w=0x8678580, x=50, row=0x869d8cc, 
area=TEXT_AREA, start=0, end=2, hl=DRAW_NORMAL_TEXT, overlaps=0) at 
xdisp.c:19850
        head = (struct glyph_string *) 0xbfc2a290
        tail = (struct glyph_string *) 0xbfc2a1e0
        s = (struct glyph_string *) 0xbfc2a290
        clip_head = (struct glyph_string *) 0x0
        clip_tail = (struct glyph_string *) 0x0
        last_x = 830
        area_width = 800
        x_reached = 50
        i = 2
        j = -1214725960
        f = (struct frame *) 0x86783f8
#3  0x0809a1c0 in x_write_glyphs (start=0x867c420, len=2) at xdisp.c:21149
        x = 160
        hpos = 0
#4  0x0805a8c7 in update_text_area (w=0x8678580, vpos=9) at dispnew.c:4446
        current_row = (struct glyph_row *) 0x86bcdc4
        desired_row = (struct glyph_row *) 0x869d8cc
        rif = (struct redisplay_interface *) 0x8231000
        changed_p = 0
#5  0x0805b099 in update_window_line (w=0x8678580, vpos=9, 
mouse_face_overwritten_p=0xbfc2a720) at dispnew.c:4678
        current_row = (struct glyph_row *) 0x86bcdc4
        desired_row = (struct glyph_row *) 0x869d8cc
        rif = (struct redisplay_interface *) 0x8231000
        changed_p = 0
#6  0x0805a532 in update_window (w=0x8678580, force_p=0) at dispnew.c:4302
        vpos = 9
        i = 0
        end = (struct glyph_row *) 0x869ed9c
        mode_line_row = (struct glyph_row *) 0x869ed9c
        header_line_row = (struct glyph_row *) 0x0
        changed_p = 1
        mouse_face_overwritten_p = 0
        row = (struct glyph_row *) 0x869d8cc
        yb = 840
        n_updated = 0
        desired_matrix = (struct glyph_matrix *) 0x867b478
        paused_p = 0
        rif = (struct redisplay_interface *) 0x8231000
#7  0x08059c1b in update_window_tree (w=0x8678580, force_p=0) at dispnew.c:3995
        paused_p = 0
#8  0x08059a40 in update_frame (f=0x86783f8, force_p=0, inhibit_hairy_id_p=0) 
at dispnew.c:3923
        paused_p = 0
        root_window = (struct window *) 0x8678580
#9  0x0807fff9 in redisplay_internal (preserve_echo_area=0) at xdisp.c:11455
        f = (struct frame *) 0x86783f8
        tail = 140052997
        frame = 141001724
        w = (struct window *) 0x8678580
        f = (struct frame *) 0x86783f8
        pause = 0
        must_finish = 1
        tlbufpos = {
  charpos = 1, 
  bytepos = 1
}
        tlendpos = {
  charpos = 0, 
  bytepos = 0
}
        number_of_visible_frames = 1
        count = 2
        count1 = 4
        sf = (struct frame *) 0x86783f8
        polling_stopped_here = 1
        old_frame = 141001724
        consider_all_windows_p = 1
#10 0x0807e22f in redisplay () at xdisp.c:10629
No locals.
#11 0x08134fd5 in read_char (commandflag=1, nmaps=2, maps=0xbfc2b2e0, 
prev_event=138033353, used_mouse_menu=0xbfc2b458, end_time=0x0) at 
keyboard.c:2748
        c = 138033353
        count = 0
        jmpcount = 0
        local_getcjmp = {{
    __jmpbuf = {138068729, 1, 1698, 0, 138350992, -1077759592}, 
    __mask_was_saved = 136372559, 
    __saved_mask = {
      __val = {138280445, 138068729, 3217207960, 135961291, 11336, 138068729, 
143442996, 4294967295, 4294967295, 4294967295, 4294967295, 0 <repeats 21 times>}
    }
  }}
        save_jump = {{
    __jmpbuf = {1698, 1416, 0, 1418, 138350992, 11}, 
    __mask_was_saved = 138350992, 
    __saved_mask = {
      __val = {138033353, 3217207592, 1, 0, 1416, 3217207592, 136361940, 
138195985, 143442996, 3217207624, 136369000, 138350992, 1417, 138350992, 
136361734, 138350992, 138033353, 1, 1417, 0, 138033353, 3217207656, 136361940, 
138068729, 138033353, 138033353, 138033353, 138033353, 138220737, 3217207688, 
136361734, 138280445}
    }
  }}
        key_already_recorded = 0
        tem = 0
        save = 0
        previous_echo_area_message = 138033353
        also_record = 138033353
        reread = 0
        gcpro1 = {
  next = 0x82090ce, 
  var = 0x83f1190, 
  nvars = 1417
}
        gcpro2 = {
  next = 0x88cc434, 
  var = 0x1, 
  nvars = -1077759720
}
        polling_stopped_here = 0
        orig_kboard = (struct kboard *) 0x8658560
#12 0x0813f7a3 in read_key_sequence (keybuf=0xbfc2b634, bufsize=30, 
prompt=138033353, dont_downcase_last=0, can_return_switch_frame=1, 
fix_current_buffer=1) at keyboard.c:9455
        interrupted_kboard = (KBOARD *) 0x8658560
        interrupted_frame = (struct frame *) 0x86783f8
        key = -1077758712
        used_mouse_menu = 0
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        local_first_binding = 0
        from_string = 138033353
        count = 2
        t = 0
        echo_start = 0
        keys_start = 0
        nmaps = 2
        nmaps_allocated = 2
        defs = (Lisp_Object * volatile) 0xbfc2b2c0
        submaps = (Lisp_Object * volatile) 0xbfc2b2e0
        orig_local_map = 140046421
        orig_keymap = 138033353
        localized_local_map = 0
        first_binding = 0
        first_unbound = 31
        mock_input = 0
        fkey = {
  parent = 139600725, 
  map = 139600725, 
  start = 0, 
  end = 0
}
        keytran = {
  parent = 138025829, 
  map = 138025829, 
  start = 0, 
  end = 0
}
        indec = {
  parent = 139600733, 
  map = 139600733, 
  start = 0, 
  end = 0
}
        delayed_switch_frame = 138033353
        original_uppercase = 141038056
        original_uppercase_position = -1
        dummyflag = 0
        starting_buffer = (struct buffer *) 0x88cc430
        fake_prefixed_keys = 138033353
        gcpro1 = {
  next = 0x86811e8, 
  var = 0x83c35b2, 
  nvars = 138033353
}
#13 0x08132660 in command_loop_1 () at keyboard.c:1684
        cmd = 138384849
        lose = 0
        nonundocount = 0
        keybuf = {192, 48, -1216835760, -1208053772, -1077758320, -1220962092, 
-1077758268, -1208132384, 0, 0, 0, 0, -1208069572, -1077758320, -1077758044, 
-1472036457, 49, -1219556276, -1219561264, 134541582, -1472036458, 134541584, 
134541586, 0, 0, 1, 994, -1220962008, 0, -1077758276}
        i = 2
        no_direct = 0
        prev_modiff = 17
        prev_buffer = (struct buffer *) 0x83ab540
        already_adjusted = 0
#14 0x081b761a in internal_condition_case (bfun=0x813230e <command_loop_1>, 
handlers=138090753, hfun=0x8131cec <cmd_error>) at eval.c:1493
        val = 138278685
        c = {
  tag = 138033353, 
  val = 138033353, 
  next = 0xbfc2b820, 
  gcpro = 0x0, 
  jmp = {{
      __jmpbuf = {-1218244620, -1208054560, 0, -1077757976, -1855061887, 
585850862}, 
      __mask_was_saved = 0, 
      __saved_mask = {
        __val = {3217208932, 3086834912, 0, 3076722676, 140324248, 140346216, 
3086897724, 3217208880, 3217209156, 276967387, 49, 3075411020, 3075410044, 
134542368, 276967386, 3086717852, 134542372, 3217209568, 3086912736, 0, 
3075426924, 3076739072, 3217209568, 110932256, 3086913524, 134522752, 
3086915176, 3217209328, 3086852579, 3086915616, 3074005288, 1}
      }
    }}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 1, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
        h = {
  handler = 138090753, 
  var = 138033353, 
  chosen_clause = 140327419, 
  tag = 0xbfc2b71c, 
  next = 0x0
}
#15 0x08132067 in command_loop_2 () at keyboard.c:1396
        val = 20
#16 0x081b70d6 in internal_catch (tag=138082313, func=0x8132044 
<command_loop_2>, arg=138033353) at eval.c:1229
        c = {
  tag = 138082313, 
  val = 138033353, 
  next = 0x0, 
  gcpro = 0x0, 
  jmp = {{
      __jmpbuf = {-1218244620, -1208054560, 0, -1077757720, -1854922623, 
585207790}, 
      __mask_was_saved = 0, 
      __saved_mask = {
        __val = {134921805, 104, 13, 0, 1, 2, 0, 3076727152, 0, 177, 22, 0, 0, 
0, 0, 0, 3078993217, 140331568, 3076727152, 3217209576, 135929634, 138218001, 
138219378, 138033353, 138065216, 140347928, 140348104, 3076727104, 138033353, 
138033353, 138219378, 138219378}
      }
    }}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 1, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
#17 0x0813201d in command_loop () at keyboard.c:1375
No locals.
#18 0x081318f9 in recursive_edit_1 () at keyboard.c:984
        count = 1
        val = -1077752095
#19 0x08131a67 in Frecursive_edit () at keyboard.c:1046
        count = 0
        buffer = 138033353
#20 0x08130339 in main (argc=15, argv=0xbfc2bd94) at emacs.c:1777
        dummy = -1216835760
        stack_bottom_variable = 8 '\b'
        do_initial_setlocale = 1
        skip_args = 0
        rlim = {
  rlim_cur = 8388608, 
  rlim_max = 18446744073709551615
}
        no_loadup = 0
        junk = 0x0
(gdb) p *s
$1 = {
  x = 30, 
  y = 180, 
  ybase = 196, 
  width = 10, 
  background_width = 10, 
  height = 20, 
  left_overhang = 0, 
  right_overhang = 0, 
  f = 0x86783f8, 
  w = 0x8678580, 
  display = 0x862fb00, 
  window = 37748952, 
  row = 0x869d8cc, 
  area = TEXT_AREA, 
  char2b = 0xbfc2a270, 
  nchars = 1, 
  hl = DRAW_NORMAL_TEXT, 
  face = 0x83b11f0, 
  font = 0x8678b50, 
  font_info = 0x8678c80, 
  cmp = 0x0, 
  gidx = 0, 
  extends_to_end_of_line_p = 0, 
  background_filled_p = 0, 
  two_byte_p = 1, 
  font_not_found_p = 0, 
  stippled_p = 0, 
  for_overlaps = 0, 
  gc = 0x88c3800, 
  first_glyph = 0x867c420, 
  img = 0x0, 
  slice = {
    x = 0, 
    y = 0, 
    width = 0, 
    height = 0
  }, 
  clip_head = 0x0, 
  clip_tail = 0x0, 
  next = 0xbfc2a1e0, 
  prev = 0x0
}
(gdb) p *s->font
$2 = {
  ext_data = 0x8678c68, 
  fid = 37748754, 
  direction = 0, 
  min_char_or_byte2 = 0, 
  max_char_or_byte2 = 255, 
  min_byte1 = 0, 
  max_byte1 = 255, 
  all_chars_exist = 0, 
  default_char = 0, 
  n_properties = 23, 
  properties = 0x8678ba8, 
  min_bounds = {
    lbearing = 0, 
    rbearing = 0, 
    width = 10, 
    ascent = -3, 
    descent = -15, 
    attributes = 0
  }, 
  max_bounds = {
    lbearing = 9, 
    rbearing = 10, 
    width = 10, 
    ascent = 16, 
    descent = 4, 
    attributes = 0
  }, 
  per_char = 0xb6ecb000, 
  ascent = 16, 
  descent = 4
}
(gdb) p *s->font_info
$3 = {
  font = 0x8678b50, 
  font_idx = 0, 
  name = 0x866db68 
"-misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1", 
  full_name = 0x8678a78 
"-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1", 
  charset = 0, 
  size = 10, 
  height = 20, 
  space_width = 10, 
  average_width = 10, 
  vertical_centering = 0, 
  encoding = "\000\377", '\0' <repeats 126 times>, '\001' <repeats 127 times>, 
  baseline_offset = 0, 
  relative_compose = 0, 
  default_ascent = 0, 
  font_encoder = 0x866dba8
}
(gdb) p s->char2b[0]
$4 = {
  byte1 = 32 ' ', 
  byte2 = 172 '\254'
}
(gdb) l x_draw_glyph_string_foreground
1313    /* Draw the foreground of glyph string S.  */
1314    
1315    static void
1316    x_draw_glyph_string_foreground (s)
1317         struct glyph_string *s;
1318    {
1319      int i, x;
1320    
1321      /* If first glyph of S has a left box line, start drawing the text
1322         of S to the right of that box line.  */
(gdb) 




reply via email to

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