unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: David Abrahams <dave@boost-consulting.com>
Subject: Who's maintaining the Win32 display code?
Date: Tue, 16 Sep 2003 20:30:53 -0400	[thread overview]
Message-ID: <u4qzcmf2a.fsf@boost-consulting.com> (raw)


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	other threads:[~2003-09-17  0:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-17  0:30 David Abrahams [this message]
2003-09-17  1:25 ` Who's maintaining the Win32 display code? Tak Ota
2003-09-17  3:04   ` David Abrahams
2003-09-17  5:14     ` Peter Lee
2003-09-17  6:58     ` Jason Rumney
2003-09-17 11:56       ` David Abrahams
2003-09-23 23:50         ` David Abrahams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=u4qzcmf2a.fsf@boost-consulting.com \
    --to=dave@boost-consulting.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).