From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Robert J. Chassell" Newsgroups: gmane.emacs.devel Subject: Re: Emacs crashes, 07nov16 Date: Sat, 24 Nov 2007 14:08:11 +0000 (UTC) Message-ID: References: <4742CE2C.8000809@swipnet.se> <4743E151.9050405@swipnet.se> <47452A98.8000408@swipnet.se> <47458076.6050408@swipnet.se> <4746A143.50300@swipnet.se> <85d4u1cepc.fsf@lola.goethe.zz> <4746E993.3070902@swipnet.se> <4747ECDF.50303@swipnet.se> Reply-To: bob@rattlesnake.com NNTP-Posting-Host: lo.gmane.org X-Trace: ger.gmane.org 1195913309 17095 80.91.229.12 (24 Nov 2007 14:08:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 24 Nov 2007 14:08:29 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Nov 24 15:08:35 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IvvgP-0004V3-PU for ged-emacs-devel@m.gmane.org; Sat, 24 Nov 2007 15:08:34 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IvvgA-0002f3-C9 for ged-emacs-devel@m.gmane.org; Sat, 24 Nov 2007 09:08:18 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Ivvg5-0002cN-QW for emacs-devel@gnu.org; Sat, 24 Nov 2007 09:08:13 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Ivvg4-0002ZI-4J for emacs-devel@gnu.org; Sat, 24 Nov 2007 09:08:13 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ivvg4-0002Z6-0u for emacs-devel@gnu.org; Sat, 24 Nov 2007 09:08:12 -0500 Original-Received: from cpe-69-204-164-144.nycap.res.rr.com ([69.204.164.144] helo=rattlesnake.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Ivvg3-0002aS-7y for emacs-devel@gnu.org; Sat, 24 Nov 2007 09:08:11 -0500 Original-Received: by rattlesnake.com via sendmail from stdin id (Debian Smail3.2.0.115) Sat, 24 Nov 2007 14:08:11 +0000 (UTC) In-reply-to: <4747ECDF.50303@swipnet.se> (message from =?ISO-8859-1?Q?Jan_Dj=E4rv?= on Sat, 24 Nov 2007 10:20:31 +0100) X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 1) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:84050 Archived-At: 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, jan.h.d@swipnet.se wrote This does not look like -O0. You should not have any 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 } } }} 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 , handlers=138090753, hfun=0x8131cec ) 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 , 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' , '\001' , 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 } } }} 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 , handlers=138090753, hfun=0x8131cec ) 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 , 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' , '\001' , 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)