* Babylon crashes Emacs
@ 2007-06-23 12:33 Eli Zaretskii
2007-06-23 13:24 ` Juanma Barranquero
0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2007-06-23 12:33 UTC (permalink / raw)
To: emacs-devel
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Babylon crashes Emacs
2007-06-23 12:33 Babylon crashes Emacs Eli Zaretskii
@ 2007-06-23 13:24 ` Juanma Barranquero
2007-06-23 13:42 ` Eli Zaretskii
0 siblings, 1 reply; 4+ messages in thread
From: Juanma Barranquero @ 2007-06-23 13:24 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
On 6/23/07, Eli Zaretskii <eliz@gnu.org> wrote:
> 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?
I get this backtrace.
(BTW, how do you set drmingw to get such detailed backtrace?)
Juanma
emacs.exe caused an Access Violation at location 77ef6f8c in module
GDI32.dll Writing to location 284590c1.
Registers:
eax=00000000 ebx=00f8594c ecx=00000000 edx=000005c0 esi=00f85928 edi=00000000
eip=77ef6f8c esp=207ff7e4 ebp=207ff860 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206
Call stack:
77EF6F8C GDI32.dll:77EF6F8C BitBlt
5B15675C uxtheme.dll:5B15675C DrawThemeBackgroundEx
5B156AB2 uxtheme.dll:5B156AB2 DrawThemeBackgroundEx
5B151AC7 uxtheme.dll:5B151AC7
5B15367A uxtheme.dll:5B15367A DrawThemeText
7E3AF11D USER32.dll:7E3AF11D SendInput
01139792 emacs.exe:01139792 w32_wnd_proc w32fns.c:3913
LRESULT w32_wnd_proc(
HWND hwnd = &{
int i =
},
UINT msg = 134,
WPARAM wParam = 0,
LPARAM lParam = 0
)
...
dflt:
> return DefWindowProc (hwnd, msg, wParam, lParam);
}
...
7E398734 USER32.dll:7E398734 GetDC
7E398816 USER32.dll:7E398816 GetDC
7E39B4C0 USER32.dll:7E39B4C0 DefWindowProcW
7E39B50C USER32.dll:7E39B50C DefWindowProcW
7C91EAE3 ntdll.dll:7C91EAE3 KiUserCallbackDispatcher
01139138 emacs.exe:01139138 w32_msg_pump w32fns.c:2596
static void w32_msg_pump(
deferred_msg * msg_buf =
)
...
/* Exit nested loop when our deferred message has completed. */
if (msg_buf->completed)
> break;
}
}
...
0113B2D9 emacs.exe:0113B2D9 w32_msg_worker w32fns.c:2718
DWORD w32_msg_worker(
void * arg =
)
...
return 0;
> }
static void
...
7C80B683 kernel32.dll:7C80B683 GetModuleFileNameA
emacs.exe caused an Access Violation at location 77ef6f8c in module
GDI32.dll Writing to location 284590c1.
Registers:
eax=00000000 ebx=00f8594c ecx=00000000 edx=000005c0 esi=00f85928 edi=00000000
eip=77ef6f8c esp=207ff7e4 ebp=207ff860 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206
Call stack:
77EF6F8C GDI32.dll:77EF6F8C BitBlt
5B15675C uxtheme.dll:5B15675C DrawThemeBackgroundEx
5B156AB2 uxtheme.dll:5B156AB2 DrawThemeBackgroundEx
5B151AC7 uxtheme.dll:5B151AC7
5B15367A uxtheme.dll:5B15367A DrawThemeText
7E3AF11D USER32.dll:7E3AF11D SendInput
01139792 emacs.exe:01139792 w32_wnd_proc w32fns.c:3913
LRESULT w32_wnd_proc(
HWND hwnd = &{
int i =
},
UINT msg = 134,
WPARAM wParam = 0,
LPARAM lParam = 0
)
...
dflt:
> return DefWindowProc (hwnd, msg, wParam, lParam);
}
...
7E398734 USER32.dll:7E398734 GetDC
7E398816 USER32.dll:7E398816 GetDC
7E39B4C0 USER32.dll:7E39B4C0 DefWindowProcW
7E39B50C USER32.dll:7E39B50C DefWindowProcW
7C91EAE3 ntdll.dll:7C91EAE3 KiUserCallbackDispatcher
01139138 emacs.exe:01139138 w32_msg_pump w32fns.c:2596
static void w32_msg_pump(
deferred_msg * msg_buf =
)
...
/* Exit nested loop when our deferred message has completed. */
if (msg_buf->completed)
> break;
}
}
...
0113B2D9 emacs.exe:0113B2D9 w32_msg_worker w32fns.c:2718
DWORD w32_msg_worker(
void * arg =
)
...
return 0;
> }
static void
...
7C80B683 kernel32.dll:7C80B683 GetModuleFileNameA
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Babylon crashes Emacs
2007-06-23 13:24 ` Juanma Barranquero
@ 2007-06-23 13:42 ` Eli Zaretskii
2007-06-24 16:59 ` Juanma Barranquero
0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2007-06-23 13:42 UTC (permalink / raw)
To: Juanma Barranquero; +Cc: emacs-devel
> Date: Sat, 23 Jun 2007 15:24:44 +0200
> From: "Juanma Barranquero" <lekktu@gmail.com>
> Cc: emacs-devel@gnu.org
>
> On 6/23/07, Eli Zaretskii <eliz@gnu.org> wrote:
>
> > 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?
>
> I get this backtrace.
Thanks. I'm no longer sure that my assumption about WM_PAINT was
correct. I don't have Babylon where I'm typing this, so how about if
you try to see what message(s) Babylon sends us? For example, using
Winspector (http://www.windows-spy.com/).
> (BTW, how do you set drmingw to get such detailed backtrace?)
I don't see that my backtrace is more detailed than yours. Note that
in your case we are deep inside system DLLs, where debug info is not
available. For our functions, you get all the arguments and the
current line, AFAICS. Am I missing something?
Anyway, the only gotcha with DrMinGW I know of is that the program
must be built with -gstabs, as it seems not to support DWARF-2 right
now.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Babylon crashes Emacs
2007-06-23 13:42 ` Eli Zaretskii
@ 2007-06-24 16:59 ` Juanma Barranquero
0 siblings, 0 replies; 4+ messages in thread
From: Juanma Barranquero @ 2007-06-24 16:59 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
On 6/23/07, Eli Zaretskii <eliz@gnu.org> wrote:
> I don't have Babylon where I'm typing this, so how about if
> you try to see what message(s) Babylon sends us? For example, using
> Winspector (http://www.windows-spy.com/).
I've been trying for a while, but I don't see anything unusual. In the
last few seconds between the Ctrl+Rbutton and the crash Emacs received
the following messages:
WM_GETTEXTLENGTH : 52 times
WM_NCHITTEST : 31
WM_MOUSEMOVE : 30
WM_SETCURSOR : 30
WM_USER + 7174 (0x00002006) : 26
WM_GETTEXT : 26
WM_USER + 20 (0x00000414) : 17
WM_NCACTIVATE : 1
WM_WINDOWPOSCHANGING : 1
WM_ACTIVATEAPP : 1
WM_MOUSELEAVE : 1
WM_WINDOWPOSCHANGED : 1
(I can send you the XML dump with the timing and parameter/return
value info, if you want.) I don't know what the WM_USER + 7174 is, but
the rest is more or less as expected. (Well, the barrage of
WM_GETTEXT(LENGTH)? messages is unexpected, but I think it's just
Windows trying to make sure it got the window title right.)
Curiously, I don't get always similar info from DrMinGW, though most
of the crashes are like this one:
emacs.exe caused an Access Violation at location 7e3b1690 in module
USER32.dll Writing to location 7e39f7f9.
Registers:
eax=00000001 ebx=00000000 ecx=7e39f7f9 edx=0000000c esi=207ffeec edi=207ffeec
eip=7e3b1690 esp=207ffe54 ebp=7e39f805 iopl=0 nv up ei ng nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000286
Call stack:
AddrPC AddrReturn AddrFrame AddrStack Params
7E3B1690 FBFFFFFF 7E39F805 207FFE54 097E3C21 907E3C22
90909090 8B55FF8B
7E3B1690 USER32.dll:7E3B1690 GetOpenClipboardWindow
FBFFFFFF 00000000 FF0010C2 207FFE54 00000000 00000000
00000000 00000000
FBFFFFFF
with the reference to GetOpenClipboardWindow.
> I don't see that my backtrace is more detailed than yours. Note that
> in your case we are deep inside system DLLs, where debug info is not
> available.
You're right. I don't know what was I thinking...
Juanma
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-06-24 16:59 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-23 12:33 Babylon crashes Emacs Eli Zaretskii
2007-06-23 13:24 ` Juanma Barranquero
2007-06-23 13:42 ` Eli Zaretskii
2007-06-24 16:59 ` Juanma Barranquero
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).