unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* NTEmacs crashes, #3 of 2 ;-)
@ 2003-03-13 21:03 David Abrahams
  2003-03-13 22:30 ` NTEmacs crashes, #4 " David Abrahams
  2003-03-13 22:31 ` NTEmacs crashes, #3 " David Abrahams
  0 siblings, 2 replies; 3+ messages in thread
From: David Abrahams @ 2003-03-13 21:03 UTC (permalink / raw)



Here's another:


>	emacs.exe!get_cached_font_char(bdffont * fontp=0x746e6603, int strchr=63)  Line 343 + 0x14	C
 	emacs.exe!get_bitmap_with_cache(bdffont * fontp=0x746e6603, int strchr=63)  Line 542	C
 	emacs.exe!w32_BDF_TextOut(bdffont * fontp=0x746e6603, HDC__ * hdc=0xea011250, int left=738, int top=1125, unsigned char * text=0x0082f4c0, int dim=1, int bytelen=0, int fixed_pitch_size=0)  Line 672 + 0x9	C
 	emacs.exe!w32_text_out()  Line 2764 + 0x1b	C
 	emacs.exe!x_draw_glyph_string_foreground(glyph_string * s=0x000002e2)  Line 3516	C
 	emacs.exe!x_draw_glyph_string(glyph_string * s=0x0082f4c4)  Line 4404	C
 	emacs.exe!x_draw_glyphs(window * w=0x01c52c00, int x=745, glyph_row * row=0x01aa3000, int area=1, int start=104, int end=105, int hl=2, int overlaps_p=0)  Line 5087 + 0x6	C
 	emacs.exe!x_draw_phys_cursor_glyph(window * w=0x01c52c00, glyph_row * row=0x01aa3000, int hl=2)  Line 9665	C
 	emacs.exe!x_display_and_set_cursor(window * w=0x00000000, int on=7, int hpos=0, int vpos=10, int x=0, int y=3473784)  Line 9940 + 0x9	C
 	emacs.exe!x_update_window_end(window * w=0x01c52c00, int cursor_on_p=1, int mouse_face_overwritten_p=0)  Line 723 + 0x20	C
 	emacs.exe!update_window(window * w=0x01c52c00, int force_p=0)  Line 4196 + 0x14	C
 	emacs.exe!update_window_tree(window * w=0x01c52400, int force_p=0)  Line 3881 + 0x9	C
 	emacs.exe!update_window_tree(window * w=0x01c52600, int force_p=0)  Line 3880	C
 	emacs.exe!update_frame(frame * f=0x01c52600, int force_p=0, int inhibit_hairy_id_p=0)  Line 3819	C
 	emacs.exe!redisplay_internal(int preserve_echo_area=0)  Line 9047 + 0x8	C
 	emacs.exe!redisplay()  Line 8444 + 0x7	C
 	emacs.exe!read_char(int commandflag=1, int nmaps=2, int * maps=0x0082fca0, int prev_event=287928324, int * used_mouse_menu=0x0082fce8)  Line 2475	C
 	emacs.exe!read_key_sequence(int * keybuf=0x0082fd7c, int bufsize=30, int prompt=287928324, int dont_downcase_last=0, int can_return_switch_frame=1, int fix_current_buffer=1)  Line 8584 + 0x24	C
 	emacs.exe!command_loop_1()  Line 1503 + 0x28	C
 	emacs.exe!internal_condition_case(int (void)* bfun=0x0100e224, int handlers=288038420, int (void)* hfun=0x0100deb8)  Line 1352	C
 	emacs.exe!command_loop_2()  Line 1286 + 0x15	C
 	emacs.exe!internal_catch(int tag=287994820, int (void)* func=0x0100e12c, int arg=287928324)  Line 1112 + 0x6	C
 	emacs.exe!command_loop()  Line 1270	C
 	emacs.exe!recursive_edit_1()  Line 985 + 0x5	C
 	emacs.exe!Frecursive_edit()  Line 1042	C
 	emacs.exe!main()  Line 1659 + 0x5	C
 	emacs.exe!_mainCRTStartup()  + 0xb4	
 	kernel32.dll!77e814c7() 	

-------

 pch = fontp->chtbl[BDF_FIRST_OFFSET(index)];
010EBCF9  mov         ecx,eax 
010EBCFB  and         ecx,80h 
010EBD01  shl         ecx,1 
010EBD03  mov         edx,eax 
010EBD05  sar         edx,8 
010EBD08  or          ecx,edx 
010EBD0A  mov         edx,dword ptr [fontp] 
010EBD0D  mov         ecx,dword ptr [edx+ecx*4+18h]  <========= pc is here
  if (!pch)
010EBD11  test        ecx,ecx 
    return NULL;
010EBD13  je          get_cached_font_char+3Dh (10EBD25h) 

---------

Locals:

-	fontp	0x746e6603 {filename=??? hfile=??? hfilemap=??? ...}	bdffont *
+	filename	CXX0030: Error: expression cannot be evaluated	char *
	hfile	CXX0030: Error: expression cannot be evaluated	void *
	hfilemap	CXX0030: Error: expression cannot be evaluated	void *
+	font	CXX0030: Error: expression cannot be evaluated	unsigned char *
+	seeked	CXX0030: Error: expression cannot be evaluated	unsigned char *
	size	CXX0030: Error: expression cannot be evaluated	unsigned long
+	chtbl	0x746e661b	fchar * [512]
	llx	CXX0030: Error: expression cannot be evaluated	int
	lly	CXX0030: Error: expression cannot be evaluated	int
	urx	CXX0030: Error: expression cannot be evaluated	int
	ury	CXX0030: Error: expression cannot be evaluated	int
	yoffset	CXX0030: Error: expression cannot be evaluated	int
	relative_compose	CXX0030: Error: expression cannot be evaluated	int
	default_ascent	CXX0030: Error: expression cannot be evaluated	int
+	registry	CXX0030: Error: expression cannot be evaluated	unsigned char *
+	encoding	CXX0030: Error: expression cannot be evaluated	unsigned char *
+	slant	CXX0030: Error: expression cannot be evaluated	unsigned char *
	width	CXX0030: Error: expression cannot be evaluated	int
	height	CXX0030: Error: expression cannot be evaluated	int
	pixsz	CXX0030: Error: expression cannot be evaluated	int
	nchars	CXX0030: Error: expression cannot be evaluated	int
	strchr	63	int

---------


I can trace the problem back up the stack to here:

static void
w32_text_out (s, x, y,chars,nchars)
     struct glyph_string * s;
     int x, y;
     wchar_t * chars;
     int nchars;
{
  int charset_dim = w32_font_is_double_byte (s->gc->font) ? 2 : 1;
  if (s->gc->font->bdf)
    w32_BDF_TextOut (s->gc->font->bdf, s->hdc,  <===============
                     x, y, (char *) chars, charset_dim,
                     nchars * charset_dim, 0);
  else if (s->first_glyph->w32_font_type == UNICODE_FONT)
    ExtTextOutW (s->hdc, x, y, 0, NULL, chars, nchars, NULL);
  else
    ExtTextOutA (s->hdc, x, y, 0, NULL, (char *) chars,
		 nchars * charset_dim, NULL);
}

Where I note that s->gc->font appears to be uninitialized, or a
dangling pointer (0x746e6603).

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: NTEmacs crashes, #4 of 2 ;-)
  2003-03-13 21:03 NTEmacs crashes, #3 of 2 ;-) David Abrahams
@ 2003-03-13 22:30 ` David Abrahams
  2003-03-13 22:31 ` NTEmacs crashes, #3 " David Abrahams
  1 sibling, 0 replies; 3+ messages in thread
From: David Abrahams @ 2003-03-13 22:30 UTC (permalink / raw)


David Abrahams <dave@boost-consulting.com> writes:

And another.  OK, I could switch fonts to see what happens.  That'll
be painful though; there aren't any others I like to read.  Also, the
problem doesn't seem to be in the low-level Windows font at all, but
in some emacs structures which are wrappers around those, so I doubt
it'll change anything.

-Dave


 	emacs.exe!get_cached_font_char(bdffont * fontp=0x39353838, int strchr=0x00000020)  Line 343 + 0x14	C
 	emacs.exe!get_bitmap_with_cache(bdffont * fontp=0x39353838, int strchr=0x00000020)  Line 542	C
 	emacs.exe!w32_BDF_TextOut(bdffont * fontp=0x39353838, HDC__ * hdc=0x60012897, int left=0x0000005b, int top=0x000000bd, unsigned char * text=0x0082f590, int dim=0x00000002, int bytelen=0x00000000, int fixed_pitch_size=0x00000000)  Line 672 + 0x9	C
>	emacs.exe!w32_text_out()  Line 2764 + 0x1b	C
 	emacs.exe!x_draw_glyph_string_foreground(glyph_string * s=0x0000005b)  Line 3516	C
 	emacs.exe!x_draw_glyph_string(glyph_string * s=0x0082f594)  Line 4404	C
 	emacs.exe!x_draw_glyphs(window * w=0x01f07600, int x=0x00000062, glyph_row * row=0x026636cc, int area=0x00000001, int start=0x0000000b, int end=0x0000000c, int hl=0x00000002, int overlaps_p=0x00000000)  Line 5087 + 0x6	C
 	emacs.exe!x_draw_phys_cursor_glyph(window * w=0x01f07600, glyph_row * row=0x026636cc, int hl=0x00000002)  Line 9665	C
 	emacs.exe!x_display_and_set_cursor(window * w=0x00000000, int on=0x00000007, int hpos=0x00000000, int vpos=0x0000000a, int x=0x00000000, int y=0x0001017c)  Line 9940 + 0x9	C
 	emacs.exe!x_update_window_end(window * w=0x01f07600, int cursor_on_p=0x00000001, int mouse_face_overwritten_p=0x00000000)  Line 723 + 0x20	C
 	emacs.exe!update_window(window * w=0x01f07600, int force_p=0x00000000)  Line 4196 + 0x14	C
 	emacs.exe!update_window_tree(window * w=0x01f07600, int force_p=0x00000000)  Line 3881 + 0x9	C
 	emacs.exe!update_frame(frame * f=0x01f07600, int force_p=0x00000000, int inhibit_hairy_id_p=0x00000000)  Line 3819	C
 	emacs.exe!redisplay_internal(int preserve_echo_area=0x00000000)  Line 9107 + 0x18	C
 	emacs.exe!redisplay()  Line 8444 + 0x7	C
 	emacs.exe!read_char(int commandflag=0x00000001, int nmaps=0x00000005, int * maps=0x0082fc94, int prev_event=0x11297004, int * used_mouse_menu=0x0082fce8)  Line 2475	C
 	emacs.exe!read_key_sequence(int * keybuf=0x0082fd7c, int bufsize=0x0000001e, int prompt=0x11297004, int dont_downcase_last=0x00000000, int can_return_switch_frame=0x00000001, int fix_current_buffer=0x00000001)  Line 8584 + 0x24	C
 	emacs.exe!command_loop_1()  Line 1503 + 0x28	C
 	emacs.exe!internal_condition_case(int (void)* bfun=0x0100e224, int handlers=0x112b1e14, int (void)* hfun=0x0100deb8)  Line 1352	C
 	emacs.exe!command_loop_2()  Line 1286 + 0x15	C
 	emacs.exe!internal_catch(int tag=0x112a73c4, int (void)* func=0x0100e12c, int arg=0x11297004)  Line 1112 + 0x6	C
 	emacs.exe!command_loop()  Line 1270	C
 	emacs.exe!recursive_edit_1()  Line 985 + 0x5	C
 	emacs.exe!Frecursive_edit()  Line 1042	C
 	emacs.exe!main()  Line 1659 + 0x5	C
 	emacs.exe!_mainCRTStartup()  + 0xb4	
 	kernel32.dll!77e814c7() 	

-------- locals in w32_text_out ---------

-	s	0x0082f594 {x=0x0000005b y=0x000000b4 ybase=0x000000bd ...}	glyph_string *
        x	0x0000005b	int
        y	0x000000b4	int
        ybase	0x000000bd	int
        width	0x00000007	int
        background_width	0x00000007	int
        height	0x0000000c	int
        left_overhang	0x00000000	int
        right_overhang	0x00000000	int
    +	f	0x0155e000 {size=0x20000442 next=0x0155c000 {size=0x20008082 next=0x01542a90 {size=0x00000001 next=0x01542aa0 {size=0x00000001 next=0x01542ab0 contents=0x01542aa8 } contents=0x01542a98 } contents=0x0155c008 } name=0x3155cc84 ...}	frame *
    +	w	0x01f07600 {size=0x20001043 vec_next=0x01f07800 {size=0x20001043 next=0x01f07e00 {size=0x20001043 next=0x01f07a00 {size=0x20001043 next=0x01fa6040 contents=0x01f07a08 } contents=0x01f07e08 } contents=0x01f07808 } frame=0x4155e000 ...}	window *
    +	window	0x0001017c {unused=0x00520045 }	HWND__ *
    +	row	0x026636cc {glyphs=0x026636cc used=0x026636dc x=0x00000000 ...}	glyph_row *
        area	0x00000001	int
    +	char2b	0x0082f590 " c["	unsigned short *
        nchars	0x00000001	int
        hl	0x00000002	int
    +	face	0x028d7c00 {id=0x00000000 gc=0x01542070 {foreground=0x02000000 background=0x02ffffff font=0x014f3000 {font_type=0x00000000 tm={tmHeight=0x0000000c tmAscent=0x00000009 tmDescent=0x00000003 ...} hfont=0x070a0512 {unused=??? } ...} } font=0x014f3000 {font_type=0x00000000 tm={tmHeight=0x0000000c tmAscent=0x00000009 tmDescent=0x00000003 ...} hfont=0x070a0512 {unused=??? } ...} ...}	face *
    +	font	0x014f3000 {font_type=0x00000000 tm={tmHeight=0x0000000c tmAscent=0x00000009 tmDescent=0x00000003 ...} hfont=0x070a0512 {unused=??? } ...}	W32FontStruct *
        font_info	0x01752268	font_info *
    +	cmp	0x00000000 {glyph_len=??? pixel_width=??? ascent=??? ...}	composition *
        gidx	0x00000000	int
        extends_to_end_of_line_p	0x00000000	unsigned int
        background_filled_p	0x00000000	unsigned int
        two_byte_p	0x00000000	unsigned int
        font_not_found_p	0x00000000	unsigned int
        stippled_p	0x00000000	unsigned int
        for_overlaps_p	0x00000000	unsigned int
    -	gc	0x015854d0 {foreground=0x02ffffff background=0x02000000 font=0x01320b00 {font_type=0x01320a80 tm={tmHeight=0x02531f80 tmAscent=0x63756c2d tmDescent=0x20616469 ...} hfont=0x6f73692d {unused=??? } ...} }	_XGCValues *
            foreground	0x02ffffff	unsigned long
            background	0x02000000	unsigned long
        -	font	0x01320b00 {font_type=0x01320a80 tm={tmHeight=0x02531f80 tmAscent=0x63756c2d tmDescent=0x20616469 ...} hfont=0x6f73692d {unused=??? } ...}	W32FontStruct *
                font_type	0x01320a80	int
            +	tm	{tmHeight=0x02531f80 tmAscent=0x63756c2d tmDescent=0x20616469 ...}	tagTEXTMETRICA
            +	hfont	0x6f73692d {unused=??? }	HFONT__ *
            +	bdf	0x39353838 {filename=??? hfile=??? hfilemap=??? ...}	bdffont *
                double_byte_p	0x3100312d	int
            +	max_bounds	{rbearing=0x0000 lbearing=0x0000 width=0x0000 ...}	_XCharStruct
            +	scratch	{rbearing=0x0000 lbearing=0x0000 width=0x0000 ...}	_XCharStruct
            +	per_char	0x01510800 {rbearing=0x0007 lbearing=0x0000 width=0x0008 ...}	_XCharStruct *
            +	hdc	0x60012897 {unused=??? }	HDC__ *
            +	first_glyph	0x024d20dc {charpos=0x00000481 object=0x424a8c00 pixel_width=0x0007 ...}	glyph *
            +	img	0x00000000 {timestamp=??? pixmap=??? mask=??? ...}	image *
            +	next	0x00000000 {x=??? y=??? ybase=??? ...}	glyph_string *
            +	prev	0x00000000 {x=??? y=??? ybase=??? ...}	glyph_string *
                x	0x0000005b	int
                y	0x000000bd	int
            +	chars	0x0082f590 " c["	unsigned short *
                nchars	0x00000001	int

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: NTEmacs crashes, #3 of 2 ;-)
  2003-03-13 21:03 NTEmacs crashes, #3 of 2 ;-) David Abrahams
  2003-03-13 22:30 ` NTEmacs crashes, #4 " David Abrahams
@ 2003-03-13 22:31 ` David Abrahams
  1 sibling, 0 replies; 3+ messages in thread
From: David Abrahams @ 2003-03-13 22:31 UTC (permalink / raw)


BTW, one more data point:  my .emacs begins with:

(setq w32-enable-italics t)
(setq w32-enable-synthesized-fonts t)
(set-default-font "-*-Lucida Console-normal-r-*-*-12-96-96-96-c-*-iso8859-1")
(set-face-font 'italic "-*-Lucida Console-normal-i-*-*-12-96-96-96-c-*-*-1")
(set-face-font 'bold-italic "-*-Lucida Console-bold-i-*-*-12-96-96-96-c-*-*-1")

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-03-13 22:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-13 21:03 NTEmacs crashes, #3 of 2 ;-) David Abrahams
2003-03-13 22:30 ` NTEmacs crashes, #4 " David Abrahams
2003-03-13 22:31 ` NTEmacs crashes, #3 " David Abrahams

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).