From: Eli Zaretskii <eliz@gnu.org>
To: emacs-devel@gnu.org
Subject: Babylon crashes Emacs
Date: Sat, 23 Jun 2007 15:33:29 +0300 [thread overview]
Message-ID: <ubqf6q292.fsf@gnu.org> (raw)
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
next reply other threads:[~2007-06-23 12:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-23 12:33 Eli Zaretskii [this message]
2007-06-23 13:24 ` Babylon crashes Emacs Juanma Barranquero
2007-06-23 13:42 ` Eli Zaretskii
2007-06-24 16:59 ` Juanma Barranquero
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=ubqf6q292.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/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).