emacs-devel
[Top][All Lists]
Advanced

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

Who's maintaining the Win32 display code?


From: David Abrahams
Subject: Who's maintaining the Win32 display code?
Date: Tue, 16 Sep 2003 20:30:53 -0400
User-agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (windows-nt)

I've been reporting these crashes for several months; is anyone going
to try to track this down or at least give me some pointers?  If not,
maybe as I suggested earlier Win32 should be dropped as a target
platform.  I've done my best to debug the code, but without some
guidance as to what's supposed to be happening, I'm lost.  I can say
that it appears to be trying to draw my cursor.  In w32_text_out(),
s->gc->font appears to be garbage and s->font appears to be valid.
There appear to be many ways to get to a W32FontStruct from a
glyph_string*; I have no idea whether any or all of them are supposed
to match up, but I am guessing that there's a lot of redundancy here
and the invariant is too complicated to be easily maintained.  Anyway,
that's about all I can contribute: stack traces and speculation.

I'm very discouraged :(

        emacs.exe!get_cached_font_char(bdffont * fontp=0x31003935, int 
strchr=0x00000020)  Line 343 + 0x16      C
        emacs.exe!get_bitmap_with_cache(bdffont * fontp=0x31003935, int 
strchr=0x00000020)  Line 541 + 0xd      C
        emacs.exe!w32_BDF_TextOut(bdffont * fontp=0x31003935, HDC__ * 
hdc=0x1f010988, int left=0x00000313, int top=0x000000b1, unsigned char * 
text=0x0082ec70, int dim=0x00000001, int bytelen=0x00000000, int 
fixed_pitch_size=0x00000000)  Line 672 + 0xd    C
        emacs.exe!w32_text_out()  Line 1130 + 0x33      C
        emacs.exe!x_draw_glyph_string_foreground(glyph_string * s=0x0082ec74)  
Line 1505 + 0x25 C
        emacs.exe!x_draw_glyph_string(glyph_string * s=0x0082ec74)  Line 2381 + 
0x9     C
        emacs.exe!draw_glyphs()  Line 17421 + 0xf       C
        emacs.exe!draw_phys_cursor_glyph(window * w=0x01c74000, glyph_row * 
row=0x02080658, draw_glyphs_face hl=DRAW_CURSOR)  Line 18853 + 0x36 C
        emacs.exe!w32_draw_window_cursor()  Line 5135 + 0xf     C
>       emacs.exe!display_and_set_cursor(window * w=0x01c74000, int 
> on=0x00000001, int hpos=0x00000000, int vpos=0x0000000e, int x=0x00000000, 
> int y=0x000000a8)  Line 19049 + 0x2a     C
        emacs.exe!x_update_window_end(window * w=0x01c74000, int 
cursor_on_p=0x00000001, int mouse_face_overwritten_p=0x00000000)  Line 542 + 
0x25      C
        emacs.exe!update_window(window * w=0x01c74000, int force_p=0x00000000)  
Line 4199 + 0x1d        C
        emacs.exe!update_window_tree(window * w=0x01c74000, int 
force_p=0x00000000)  Line 3885 + 0xd    C
        emacs.exe!update_window_tree(window * w=0x024eb400, int 
force_p=0x00000000)  Line 3881 + 0x16   C
        emacs.exe!update_frame(frame * f=0x01676a00, int force_p=0x00000000, 
int inhibit_hairy_id_p=0x00000000)  Line 3822 + 0xd        C
        emacs.exe!redisplay_internal(int preserve_echo_area=0x00000001)  Line 
10114 + 0xd       C
        emacs.exe!redisplay_preserve_echo_area(int from_where=0x00000008)  Line 
10253 + 0x7     C
        emacs.exe!detect_input_pending_run_timers(int do_display=0x00000001)  
Line 9913 + 0x7   C
        emacs.exe!wait_reading_process_input(int time_limit=0x0000001e, int 
microsecs=0x00000000, int read_kbd=0x0fffffff, int do_display=0x00000001)  Line 
4116 + 0x9  C
        emacs.exe!sit_for(int sec=0x0000001e, int usec=0x00000000, int 
reading=0x00000001, int display=0x00000001, int initial_display=0x00000000)  
Line 6251 + 0x15    C
        emacs.exe!read_char(int commandflag=0x00000001, int nmaps=0x00000003, 
int * maps=0x0082f8ec, int prev_event=0x113a8404, int * 
used_mouse_menu=0x0082fab0)  Line 2721 + 0x24     C
        emacs.exe!read_key_sequence(int * keybuf=0x0082fc44, int 
bufsize=0x0000001e, int prompt=0x113a8404, int dont_downcase_last=0x00000000, 
int can_return_switch_frame=0x00000001, int fix_current_buffer=0x00000001)  
Line 8827 + 0x2a     C
        emacs.exe!command_loop_1()  Line 1505 + 0x1b    C
        emacs.exe!internal_condition_case(int (void)* bfun=0x010176f0, int 
handlers=0x113c7e44, int (void)* hfun=0x010171c0)  Line 1333 + 0x5   C
        emacs.exe!command_loop_2()  Line 1292 + 0x15    C
        emacs.exe!internal_catch(int tag=0x113bd404, int (void)* 
func=0x01017540, int arg=0x113a8404)  Line 1094 + 0x9  C
        emacs.exe!command_loop()  Line 1271 + 0x17      C
        emacs.exe!recursive_edit_1()  Line 987 + 0x5    C
        emacs.exe!Frecursive_edit()  Line 1044  C
        emacs.exe!main()  Line 1668     C
        emacs.exe!mainCRTStartup()  Line 259 + 0x12     C
        emacs.exe!_start()  Line 131    C
        kernel32.dll!77e814c7()         

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





reply via email to

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