all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.