emacs-devel
[Top][All Lists]
Advanced

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

Babylon crashes Emacs


From: Eli Zaretskii
Subject: Babylon crashes Emacs
Date: Sat, 23 Jun 2007 15:33:29 +0300

I tried to use Babylon (http://www.babylon.com/) with Emacs, and found
that not only does it not work, but Emacs actually crashes when I use
the ``Babylon click'' on one of the words displayed by Emacs.

The backtrace produced by DrMinGW (attached below) seems to indicate
that we get a WM_PAINT message that we somehow cannot grok(?).  Is it
possible that Babylon sends us WM_PAINT so that we draw some part of
our screen in a DC that isn't ours?

--------------------------------------------------------------------------
emacs.exe caused an Access Violation at location 77f1d422 in module GDI32.dll 
Reading from location 6aec8b55.

Registers:
eax=c0011e0b ebx=00000007 ecx=0082e1e0 edx=00000001 esi=021e2980 edi=0082e200
eip=77f1d422 esp=0082e01c ebp=0082e058 iopl=0         nv up ei pl nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202

Call stack:
77F1D422  GDI32.dll:77F1D422  ExtTextOutA
0114028B  emacs.exe:0114028B  x_draw_glyph_string  w32term.c:1591
static void x_draw_glyph_string(
        struct glyph_string * s = &(indirect)
)
01035CC3  emacs.exe:01035CC3  draw_glyphs  xdisp.c:19709
static int draw_glyphs(
        struct window * w = &{
                int size = 1073745994,
                struct Lisp_Vector * vec_next = 0x018e1c00,
                Lisp_Object frame = 26090500,
                Lisp_Object mini_p = 23795713,
                Lisp_Object next = 26088964,
                Lisp_Object prev = 23795713,
                Lisp_Object hchild = 23795713,
                Lisp_Object vchild = 23795713,
                Lisp_Object parent = 23795713,
                Lisp_Object left_col = 0,
                Lisp_Object top_line = 24,
                Lisp_Object total_lines = 368,
                Lisp_Object total_cols = 672,
                Lisp_Object buffer = 34584068,
                Lisp_Object start = 24929762,
                Lisp_Object pointm = 24929738,
                Lisp_Object force_start = 23795713,
                Lisp_Object optional_new_start = 23795713,
                Lisp_Object hscroll = 0,
                Lisp_Object min_hscroll = 0,
                Lisp_Object use_time = 120,
                Lisp_Object sequence_number = 24,
                Lisp_Object temslot = 0,
                Lisp_Object last_modified = 16,
                Lisp_Object last_overlay_modified = 56,
                Lisp_Object last_point = 53632,
                Lisp_Object last_had_star = 23795713,
                Lisp_Object vertical_scroll_bar = 34992580,
                Lisp_Object left_margin_cols = 23795713,
                Lisp_Object right_margin_cols = 23795713,
                Lisp_Object left_fringe_width = 23795713,
                Lisp_Object right_fringe_width = 23795713,
                Lisp_Object fringes_outside_margins = 23795713,
                Lisp_Object scroll_bar_width = 23795713,
                Lisp_Object vertical_scroll_bar_type = 23795761,
                Lisp_Object last_mark_x = 23795713,
                Lisp_Object last_mark_y = 23795713,
                Lisp_Object window_end_pos = 0,
                Lisp_Object window_end_vpos = 176,
                Lisp_Object window_end_valid = 34584068,
                Lisp_Object update_mode_line = 23795713,
                Lisp_Object start_at_line_beg = 23795761,
                Lisp_Object display_table = 23795713,
                Lisp_Object dedicated = 23795713,
                Lisp_Object base_line_number = 8,
                Lisp_Object base_line_pos = 8,
                Lisp_Object region_showing = 23795713,
                Lisp_Object column_number_displayed = 23795713,
                Lisp_Object redisplay_end_trigger = 23795713,
                Lisp_Object too_small_ok = 23795713,
                Lisp_Object orig_total_lines = 23795713,
                Lisp_Object orig_top_line = 23795713,
                struct glyph_matrix * current_matrix = 0x02009800,
                struct glyph_matrix * desired_matrix = 0x02009c00,
                int nrows_scale_factor = 1,
                int ncols_scale_factor = 1,
                struct cursor_pos last_cursor = {
                        int x = 0,
                        int y = 392,
                        int hpos = 0,
                        int vpos = 23
                },
                struct cursor_pos cursor = {
                        int x = 0,
                        int y = 392,
                        int hpos = 0,
                        int vpos = 23
                },
                struct cursor_pos phys_cursor = {
                        int x = 0,
                        int y = 392,
                        int hpos = 0,
                        int vpos = 23
                },
                int phys_cursor_type = 1,
                int phys_cursor_width = 9,
                int phys_cursor_ascent = 13,
                int phys_cursor_height = 17,
                unsigned int phys_cursor_on_p,
                unsigned int cursor_off_p,
                unsigned int last_cursor_off_p,
                unsigned int must_be_updated_p,
                unsigned int pseudo_window_p,
                int vscroll = 0,
                int window_end_bytepos = 0,
                unsigned int frozen_window_start_p
        },
        int x = 72,
        struct glyph_row * row = &{
                struct glyph *uint32[] glyphs = (array),
                short intuint32[] used = (array),
                int x = 0,
                int y = 17,
                int pixel_width = 720,
                int ascent = 13,
                int height = 17,
                int phys_ascent = 13,
                int phys_height = 17,
                int visible_height = 17,
                int extra_line_spacing = 0,
                unsigned int hash = 208846506,
                struct display_pos start = {
                        struct text_pos pos = {
                                int charpos = 5737,
                                int bytepos = 5737
                        },
                        int overlay_string_index = -1,
                        struct text_pos string_pos = {
                                int charpos = -1,
                                int bytepos = -1
                        },
                        int dpvec_index = -1
                },
                struct display_pos end = {
                        struct text_pos pos = {
                                int charpos = 5817,
                                int bytepos = 5817
                        },
                        int overlay_string_index = -1,
                        struct text_pos string_pos = {
                                int charpos = -1,
                                int bytepos = -1
                        },
                        int dpvec_index = -1
                },
                int overlay_arrow_bitmap = 0,
                unsigned int left_user_fringe_bitmap = 0,
                unsigned int right_user_fringe_bitmap = 0,
                unsigned int left_fringe_bitmap = 458752,
                unsigned int right_fringe_bitmap = 7,
                unsigned int left_user_fringe_face_id,
                unsigned int right_user_fringe_face_id,
                unsigned int left_fringe_face_id,
                unsigned int right_fringe_face_id,
                unsigned int redraw_fringe_bitmaps_p,
                unsigned int enabled_p,
                unsigned int truncated_on_left_p,
                unsigned int truncated_on_right_p,
                unsigned int continued_p,
                unsigned int displays_text_p,
                unsigned int ends_at_zv_p,
                unsigned int fill_line_p,
                unsigned int indicate_empty_line_p,
                unsigned int contains_overlapping_glyphs_p,
                unsigned int full_width_p,
                unsigned int mode_line_p,
                unsigned int overlapped_p,
                unsigned int ends_in_middle_of_char_p,
                unsigned int starts_in_middle_of_char_p,
                unsigned int overlapping_p,
                unsigned int mouse_face_p,
                unsigned int ends_in_newline_from_string_p,
                unsigned int exact_window_width_line_p,
                unsigned int cursor_in_fringe_p,
                unsigned int ends_in_ellipsis_p,
                unsigned int indicate_bob_p,
                unsigned int indicate_top_line_p,
                unsigned int indicate_eob_p,
                unsigned int indicate_bottom_line_p,
                int continuation_lines_width = 0
        },
        enum glyph_row_area area = TEXT_AREA,
        int start = 0,
        int end = 7,
        enum draw_glyphs_face hl = DRAW_NORMAL_TEXT,
        int overlaps = 0
)
0103D42A  emacs.exe:0103D42A  expose_area  xdisp.c:23314
static void expose_area(
        struct window * w = &{
                int size = 1073745994,
                struct Lisp_Vector * vec_next = 0x018e1c00,
                Lisp_Object frame = 26090500,
                Lisp_Object mini_p = 23795713,
                Lisp_Object next = 26088964,
                Lisp_Object prev = 23795713,
                Lisp_Object hchild = 23795713,
                Lisp_Object vchild = 23795713,
                Lisp_Object parent = 23795713,
                Lisp_Object left_col = 0,
                Lisp_Object top_line = 24,
                Lisp_Object total_lines = 368,
                Lisp_Object total_cols = 672,
                Lisp_Object buffer = 34584068,
                Lisp_Object start = 24929762,
                Lisp_Object pointm = 24929738,
                Lisp_Object force_start = 23795713,
                Lisp_Object optional_new_start = 23795713,
                Lisp_Object hscroll = 0,
                Lisp_Object min_hscroll = 0,
                Lisp_Object use_time = 120,
                Lisp_Object sequence_number = 24,
                Lisp_Object temslot = 0,
                Lisp_Object last_modified = 16,
                Lisp_Object last_overlay_modified = 56,
                Lisp_Object last_point = 53632,
                Lisp_Object last_had_star = 23795713,
                Lisp_Object vertical_scroll_bar = 34992580,
                Lisp_Object left_margin_cols = 23795713,
                Lisp_Object right_margin_cols = 23795713,
                Lisp_Object left_fringe_width = 23795713,
                Lisp_Object right_fringe_width = 23795713,
                Lisp_Object fringes_outside_margins = 23795713,
                Lisp_Object scroll_bar_width = 23795713,
                Lisp_Object vertical_scroll_bar_type = 23795761,
                Lisp_Object last_mark_x = 23795713,
                Lisp_Object last_mark_y = 23795713,
                Lisp_Object window_end_pos = 0,
                Lisp_Object window_end_vpos = 176,
                Lisp_Object window_end_valid = 34584068,
                Lisp_Object update_mode_line = 23795713,
                Lisp_Object start_at_line_beg = 23795761,
                Lisp_Object display_table = 23795713,
                Lisp_Object dedicated = 23795713,
                Lisp_Object base_line_number = 8,
                Lisp_Object base_line_pos = 8,
                Lisp_Object region_showing = 23795713,
                Lisp_Object column_number_displayed = 23795713,
                Lisp_Object redisplay_end_trigger = 23795713,
                Lisp_Object too_small_ok = 23795713,
                Lisp_Object orig_total_lines = 23795713,
                Lisp_Object orig_top_line = 23795713,
                struct glyph_matrix * current_matrix = 0x02009800,
                struct glyph_matrix * desired_matrix = 0x02009c00,
                int nrows_scale_factor = 1,
                int ncols_scale_factor = 1,
                struct cursor_pos last_cursor = {
                        int x = 0,
                        int y = 392,
                        int hpos = 0,
                        int vpos = 23
                },
                struct cursor_pos cursor = {
                        int x = 0,
                        int y = 392,
                        int hpos = 0,
                        int vpos = 23
                },
                struct cursor_pos phys_cursor = {
                        int x = 0,
                        int y = 392,
                        int hpos = 0,
                        int vpos = 23
                },
                int phys_cursor_type = 1,
                int phys_cursor_width = 9,
                int phys_cursor_ascent = 13,
                int phys_cursor_height = 17,
                unsigned int phys_cursor_on_p,
                unsigned int cursor_off_p,
                unsigned int last_cursor_off_p,
                unsigned int must_be_updated_p,
                unsigned int pseudo_window_p,
                int vscroll = 0,
                int window_end_bytepos = 0,
                unsigned int frozen_window_start_p
        },
        struct glyph_row * row = &{
                struct glyph *uint32[] glyphs = (array),
                short intuint32[] used = (array),
                int x = 0,
                int y = 17,
                int pixel_width = 720,
                int ascent = 13,
                int height = 17,
                int phys_ascent = 13,
                int phys_height = 17,
                int visible_height = 17,
                int extra_line_spacing = 0,
                unsigned int hash = 208846506,
                struct display_pos start = {
                        struct text_pos pos = {
                                int charpos = 5737,
                                int bytepos = 5737
                        },
                        int overlay_string_index = -1,
                        struct text_pos string_pos = {
                                int charpos = -1,
                                int bytepos = -1
                        },
                        int dpvec_index = -1
                },
                struct display_pos end = {
                        struct text_pos pos = {
                                int charpos = 5817,
                                int bytepos = 5817
                        },
                        int overlay_string_index = -1,
                        struct text_pos string_pos = {
                                int charpos = -1,
                                int bytepos = -1
                        },
                        int dpvec_index = -1
                },
                int overlay_arrow_bitmap = 0,
                unsigned int left_user_fringe_bitmap = 0,
                unsigned int right_user_fringe_bitmap = 0,
                unsigned int left_fringe_bitmap = 458752,
                unsigned int right_fringe_bitmap = 7,
                unsigned int left_user_fringe_face_id,
                unsigned int right_user_fringe_face_id,
                unsigned int left_fringe_face_id,
                unsigned int right_fringe_face_id,
                unsigned int redraw_fringe_bitmaps_p,
                unsigned int enabled_p,
                unsigned int truncated_on_left_p,
                unsigned int truncated_on_right_p,
                unsigned int continued_p,
                unsigned int displays_text_p,
                unsigned int ends_at_zv_p,
                unsigned int fill_line_p,
                unsigned int indicate_empty_line_p,
                unsigned int contains_overlapping_glyphs_p,
                unsigned int full_width_p,
                unsigned int mode_line_p,
                unsigned int overlapped_p,
                unsigned int ends_in_middle_of_char_p,
                unsigned int starts_in_middle_of_char_p,
                unsigned int overlapping_p,
                unsigned int mouse_face_p,
                unsigned int ends_in_newline_from_string_p,
                unsigned int exact_window_width_line_p,
                unsigned int cursor_in_fringe_p,
                unsigned int ends_in_ellipsis_p,
                unsigned int indicate_bob_p,
                unsigned int indicate_top_line_p,
                unsigned int indicate_eob_p,
                unsigned int indicate_bottom_line_p,
                int continuation_lines_width = 0
        },
        XRectangle * r = &{
                int x = 0,
                int y = 0,
                unsigned int width = 67,
                unsigned int height = 92
        },
        enum glyph_row_area area = TEXT_AREA
)
0103D80A  emacs.exe:0103D80A  expose_line  xdisp.c:23339
static int expose_line(
        struct window * w = ,
        struct glyph_row * row = ,
        XRectangle * r = &{
                int x = 0,
                int y = 0,
                unsigned int width = 67,
                unsigned int height = 92
        }
)
0103D9C0  emacs.exe:0103D9C0  expose_window  xdisp.c:23540
static int expose_window(
        struct window * w = ,
        XRectangle * fr = 
)
0103DE9D  emacs.exe:0103DE9D  expose_window_tree  xdisp.c:23599
static int expose_window_tree(
        struct window * w = ,
        XRectangle * r = 
)
0103DF37  emacs.exe:0103DF37  expose_frame  xdisp.c:23658
void expose_frame(
        struct frame * f = &{
                int size = 1073742932,
                struct Lisp_Vector * next = 0x01ff8e40,
                Lisp_Object name = 41503763,
                Lisp_Object icon_name = 23795713,
                Lisp_Object title = 23795713,
                Lisp_Object focus_frame = 23795713,
                Lisp_Object root_window = 26089476,
                Lisp_Object selected_window = 26089476,
                Lisp_Object minibuffer_window = 26088964,
                Lisp_Object param_alist = 25990525,
                Lisp_Object scroll_bars = 34992580,
                Lisp_Object condemned_scroll_bars = 23795713,
                Lisp_Object menu_bar_items = 26493956,
                Lisp_Object face_alist = 35571045,
                Lisp_Object menu_bar_vector = 33755140,
                int menu_bar_items_used = 0,
                Lisp_Object buffer_predicate = 23795713,
                Lisp_Object buffer_list = 42852301,
                Lisp_Object menu_bar_window = 23795713,
                Lisp_Object tool_bar_window = 33617412,
                Lisp_Object tool_bar_items = 43755524,
                Lisp_Object desired_tool_bar_string = 34245235,
                Lisp_Object current_tool_bar_string = 36441427,
                struct face_cache * face_cache = 0x01fffec0,
                char * namebuf = 0x016c3fa0,
                struct glyph_pool * current_pool = 0x00000000,
                struct glyph_pool * desired_pool = 0x00000000,
                struct glyph_matrix * desired_matrix = 0x00000000,
                struct glyph_matrix * current_matrix = 0x00000000,
                unsigned int glyphs_initialized_p,
                int tool_bar_lines = 3,
                int n_tool_bar_rows = 1,
                int n_tool_bar_items = 14,
                char * decode_mode_spec_buffer = 0x0200f200,
                int * insert_line_cost = 0x016ebd00,
                int * delete_line_cost = 0x01944c00,
                int * insert_n_lines_cost = 0x018e9000,
                int * delete_n_lines_cost = 0x016c1d00,
                int text_lines = 50,
                int text_cols = 80,
                int total_lines = 0,
                int total_cols = 84,
                int new_text_lines = 0,
                int new_text_cols = 0,
                int left_pos = 409,
                int top_pos = 28,
                int pixel_height = 850,
                int pixel_width = 756,
                int x_pixels_diff = 413,
                int y_pixels_diff = 70,
                int win_gravity = 1,
                int size_hint_flags = 0,
                int border_width = 2,
                int internal_border_width = 0,
                int column_width = 9,
                int space_width = 9,
                int line_height = 17,
                enum output_method output_method = output_w32,
                union output_data output_data = {
                        struct x_output * x = 0x01944000,
                        struct w32_output * w32 = 0x01944000,
                        struct mac_output * mac = 0x01944000,
                        int nothing = 26492928
                },
                int fringe_cols = 2,
                int left_fringe_width = 9,
                int right_fringe_width = 9,
                int want_fullscreen = 0,
                int menu_bar_lines = 0,
                int external_menu_bar = 1,
                char display_preempted = 0,
                char visible = 1,
                char iconified = 0,
                char async_visible = 1,
                char async_iconified = 0,
                char garbaged = 0,
                char has_minibuffer = 1,
                char wants_modeline = 1,
                char can_have_scroll_bars = 1,
                enum vertical_scroll_bar_type vertical_scroll_bar_type = 
vertical_scroll_bar_right,
                enum text_cursor_kinds desired_cursor = FILLED_BOX_CURSOR,
                int cursor_width = 23915289,
                enum text_cursor_kinds blink_off_cursor = DEFAULT_CURSOR,
                int blink_off_cursor_width = 0,
                char auto_raise = 0,
                char auto_lower = 0,
                char no_split = 0,
                char explicit_name = 0,
                char window_sizes_changed = 0,
                char * message_buf = 0x0200f000,
                int scroll_bottom_vpos = -1,
                int config_scroll_bar_width = 16,
                int config_scroll_bar_cols = 2,
                int scroll_bar_actual_width = 18,
                int cost_calculation_baud_rate = 19200,
                char mouse_moved = 1,
                double gamma = 0.000000,
                int extra_line_spacing = 0,
                unsigned int resized_p,
                unsigned int force_flush_display_p,
                unsigned int default_face_done_p,
                unsigned int already_hscrolled_p,
                unsigned int updated_p,
                unsigned int minimize_tool_bar_window_p
        },
        int x = 0,
        int y = 0,
        int w = 67,
        int h = 143
)
0114490D  emacs.exe:0114490D  w32_read_socket  w32term.c:4229
int w32_read_socket(
        int sd = 0,
        int expected = 0,
        struct input_event * hold_quit = &{
                enum event_kind kind = NO_EVENT,
                int code = 0,
                enum scroll_bar_part part = scroll_bar_above_handle,
                int modifiers = 0,
                Lisp_Object x = 0,
                Lisp_Object y = 0,
                long unsigned int timestamp = 0,
                int *uint32[] padding = (array),
                Lisp_Object frame_or_window = 0,
                Lisp_Object arg = 0
        }
)
01056C11  emacs.exe:01056C11  read_avail_input  keyboard.c:6846
static int read_avail_input(
        int expected = 0
)
01056CBD  emacs.exe:01056CBD  get_input_pending  keyboard.c:6730
static void get_input_pending(
        int * addr = ,
        int flags = 
)
01056D95  emacs.exe:01056D95  detect_input_pending_run_timers  keyboard.c:10239
int detect_input_pending_run_timers(
        int do_display = 1
)
01043B80  emacs.exe:01043B80  wait_reading_process_output  process.c:4697
int wait_reading_process_output(
        int time_limit = 15,
        int microsecs = 0,
        int read_kbd = -1,
        int do_display = 1,
        Lisp_Object wait_for_cell = 23795713,
        struct Lisp_Process * wait_proc = &{
                int size = ,
                struct Lisp_Vector * v_next = ,
                Lisp_Object infd = ,
                Lisp_Object outfd = ,
                Lisp_Object tty_name = ,
                Lisp_Object name = ,
                Lisp_Object command = ,
                Lisp_Object filter = ,
                Lisp_Object sentinel = ,
                Lisp_Object log = ,
                Lisp_Object buffer = ,
                Lisp_Object childp = ,
                Lisp_Object plist = ,
                Lisp_Object mark = ,
                Lisp_Object kill_without_query = ,
                Lisp_Object status = ,
                Lisp_Object pty_flag = ,
                Lisp_Object tick = ,
                Lisp_Object update_tick = ,
                Lisp_Object decode_coding_system = ,
                Lisp_Object decoding_buf = ,
                Lisp_Object decoding_carryover = ,
                Lisp_Object encode_coding_system = ,
                Lisp_Object encoding_buf = ,
                Lisp_Object encoding_carryover = ,
                Lisp_Object inherit_coding_system_flag = ,
                Lisp_Object filter_multibyte = ,
                Lisp_Object adaptive_read_buffering = ,
                Lisp_Object read_output_delay = ,
                Lisp_Object read_output_skip = ,
                pid_t pid = ,
                int raw_status_new,
                int raw_status = 
        },
        int just_wait_proc = 0
)
01095B38  emacs.exe:01095B38  sit_for  dispnew.c:6582
Lisp_Object sit_for(
        Lisp_Object timeout = 120,
        int reading = 1,
        int do_display = 1
)
010598C7  emacs.exe:010598C7  read_char  keyboard.c:2904
Lisp_Object read_char(
        int commandflag = 1,
        int nmaps = 4,
        Lisp_Object * maps = &34136997,
        Lisp_Object prev_event = 23795713,
        int * used_mouse_menu = &0,
        struct timeval * end_time = &{
                long int tv_sec = ,
                long int tv_usec = 
        }
)
0105ABF1  emacs.exe:0105ABF1  read_key_sequence  keyboard.c:9142
static int read_key_sequence(
        Lisp_Object * keybuf = &192,
        int bufsize = 30,
        Lisp_Object prompt = 23795713,
        int dont_downcase_last = 0,
        int can_return_switch_frame = 1,
        int fix_current_buffer = 1
)
0105C3C7  emacs.exe:0105C3C7  command_loop_1  keyboard.c:1618
Lisp_Object command_loop_1(
        
)
0100A317  emacs.exe:0100A317  internal_condition_case  eval.c:1482
Lisp_Object internal_condition_case(
        Lisp_Object ()(void) * bfun = &command_loop_1,
        Lisp_Object handlers = 23863945,
        Lisp_Object ()(void) * hfun = &cmd_error
)
01050416  emacs.exe:01050416  command_loop_2  keyboard.c:1329
Lisp_Object command_loop_2(
        
)
0100A24C  emacs.exe:0100A24C  internal_catch  eval.c:1222
Lisp_Object internal_catch(
        Lisp_Object tag = 23854081,
        Lisp_Object ()(void) * func = &command_loop_2,
        Lisp_Object arg = 23795713
)
01050263  emacs.exe:01050263  command_loop  keyboard.c:1312
Lisp_Object command_loop(
        
)
010502F7  emacs.exe:010502F7  recursive_edit_1  keyboard.c:1007
Lisp_Object recursive_edit_1(
        
)
010503DC  emacs.exe:010503DC  Frecursive_edit  keyboard.c:1068
Lisp_Object Frecursive_edit(
        
)
01002A48  emacs.exe:01002A48  main  emacs.c:1765
int main(
        int argc = 1,
        char * * argv = &0x012be188
)
01001247  emacs.exe:01001247
01001298  emacs.exe:01001298
7C816FD7  kernel32.dll:7C816FD7  RegisterWaitForInputIdle




reply via email to

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