From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: David Ponce Newsgroups: gmane.emacs.devel Subject: NT Emacs crashes when selecting a menubar item Date: Wed, 24 Jul 2002 20:55:45 +0200 Sender: emacs-devel-admin@gnu.org Message-ID: <3D3EF831.3040008@dponce.com> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: main.gmane.org 1027536953 5752 127.0.0.1 (24 Jul 2002 18:55:53 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 24 Jul 2002 18:55:53 +0000 (UTC) Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 17XRIV-0001US-00 for ; Wed, 24 Jul 2002 20:55:43 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17XRXQ-0003XB-00 for ; Wed, 24 Jul 2002 21:11:08 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17XRIR-0004M1-00; Wed, 24 Jul 2002 14:55:39 -0400 Original-Received: from smtp-out-4.wanadoo.fr ([193.252.19.23] helo=mel-rto4.wanadoo.fr) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17XRHJ-0004Eo-00 for ; Wed, 24 Jul 2002 14:54:29 -0400 Original-Received: from mel-rta8.wanadoo.fr (193.252.19.79) by mel-rto4.wanadoo.fr (6.5.007) id 3D18589F00F917A7 for emacs-devel@gnu.org; Wed, 24 Jul 2002 20:54:28 +0200 Original-Received: from dponce.com (80.9.191.243) by mel-rta8.wanadoo.fr (6.5.007) id 3D2A78F60076704C for emacs-devel@gnu.org; Wed, 24 Jul 2002 20:54:28 +0200 User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.1b) Gecko/20020720 X-Accept-Language: fr, en-us, en Original-To: emacs-devel@gnu.org Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:6016 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:6016 Hi All, Sometimes when I select an item on the menu bar Emacs crashes because it try to access a bad memory location. Sometimes also this even crashes Windows NT because of a page fault! I managed to get a backtrace (see at end) using Dr. Mingw, a Just-In-Time debugger. It shows that the problem occurs in the function `free_menubar_widget_value_tree' which try to free a corrupted `widget_value' data structure. Would it be possible that the GC corrupted it? Unfortunately, I don't know enough the Emacs internals to give more useful informations :-( What I can say is that the problem seems to occur when I use complex imenu indexes (generated by Semantic). Also sometimes I noticed that I got garbaged imenu item names. Hope this will help. David In GNU Emacs 21.3.50.1 (i386-mingw-nt4.0.1381) of 2002-07-24 on EBAT311 configured using `configure --with-gcc (2.95)' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: ENU locale-coding-system: iso-latin-1 default-enable-multibyte-characters: t ------------- Dr. Mingw backtrace emacs.exe caused an Access Violation at location 01110446 in module emacs.exe Reading from location 63746189. Registers: eax=6374616d ebx=6374616d ecx=0082ffe0 edx=0fe8007a esi=00000020 edi=11555c04 eip=01110446 esp=0082f3e8 ebp=0082f400 iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000202 Call stack: 01110446 emacs.exe:01110446 free_menubar_widget_value_tree w32menu.c:1081 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = , char * value = , char * key = , int help = , Boolean enabled = , Boolean selected = , enum button_type button_type = , Boolean title = , struct _widget_value * contents = , XtPointer call_data = , struct _widget_value * next = } ) ... wv->name = wv->value = wv->key = (char *) 0xDEADBEEF; > if (wv->contents && (wv->contents != (widget_value*)1)) { free_menubar_widget_value_tree (wv->contents); ... 0111046B emacs.exe:0111046B free_menubar_widget_value_tree w32menu.c:1084 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 875524, Boolean enabled = 'H', Boolean selected = 'i', enum button_type button_type = 1751607660, Boolean title = 't', struct _widget_value * contents = 0x6374616d, XtPointer call_data = 0x20646568, struct _widget_value * next = 0x746e7953 } ) ... { free_menubar_widget_value_tree (wv->contents); > wv->contents = (widget_value *) 0xDEADBEEF; } if (wv->next) ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x0000049d, struct _widget_value * next = 0x008381f8 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x00000000, struct _widget_value * next = 0x0083b660 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x00000468, struct _widget_value * next = 0x00838020 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x00000453, struct _widget_value * next = 0x0083c4a0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x0000043e, struct _widget_value * next = 0x00839030 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x000003f1, struct _widget_value * next = 0x0083c1b0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 0111046B emacs.exe:0111046B free_menubar_widget_value_tree w32menu.c:1084 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 828210548, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00837fc0, XtPointer call_data = 0x000003e5, struct _widget_value * next = 0x00000000 } ) ... { free_menubar_widget_value_tree (wv->contents); > wv->contents = (widget_value *) 0xDEADBEEF; } if (wv->next) ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 828210452, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x000003dd, struct _widget_value * next = 0x00838eb0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x00000000, struct _widget_value * next = 0x0083dfa0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 828210308, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x00000378, struct _widget_value * next = 0x0083c0f0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x0000030b, struct _widget_value * next = 0x00838350 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x00000269, struct _widget_value * next = 0x0083bde0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x00000000, struct _widget_value * next = 0x0083c680 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 828116292, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x00000259, struct _widget_value * next = 0x00838260 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 828116084, Boolean enabled = 0, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x00000251, struct _widget_value * next = 0x0083bdb0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 828102516, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x000001e4, struct _widget_value * next = 0x0083c050 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 824014472, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x000001dc, struct _widget_value * next = 0x0083b7e0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 824014552, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x000001d4, struct _widget_value * next = 0x00838f10 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 824014640, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x000001cc, struct _widget_value * next = 0x0083c1e0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 828101908, Boolean enabled = 0, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x00000000, XtPointer call_data = 0x000001c4, struct _widget_value * next = 0x0083c180 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 0111046B emacs.exe:0111046B free_menubar_widget_value_tree w32menu.c:1084 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x0083c120, XtPointer call_data = 0x00000000, struct _widget_value * next = 0x0083b8d0 } ) ... { free_menubar_widget_value_tree (wv->contents); > wv->contents = (widget_value *) 0xDEADBEEF; } if (wv->next) ... 01110485 emacs.exe:01110485 free_menubar_widget_value_tree w32menu.c:1089 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0xdeadbeef, XtPointer call_data = 0x00000000, struct _widget_value * next = 0x00837ed0 } ) ... { free_menubar_widget_value_tree (wv->next); > wv->next = (widget_value *) 0xDEADBEEF; } BLOCK_INPUT; ... 0111046B emacs.exe:0111046B free_menubar_widget_value_tree w32menu.c:1084 void free_menubar_widget_value_tree( widget_value * wv = &{ char * name = 0xdeadbeef, char * value = 0xdeadbeef, char * key = 0xdeadbeef, int help = 290806788, Boolean enabled = 1, Boolean selected = 0, enum button_type button_type = BUTTON_TYPE_NONE, Boolean title = 0, struct _widget_value * contents = 0x0083c470, XtPointer call_data = 0x00000000, struct _widget_value * next = 0x00000000 } ) ... { free_menubar_widget_value_tree (wv->contents); > wv->contents = (widget_value *) 0xDEADBEEF; } if (wv->next) ... 01110E7B emacs.exe:01110E7B set_frame_menubar w32menu.c:1517 void set_frame_menubar( FRAME_PTR f = &{ int size = 536871998, struct Lisp_Vector * next = 0x01ce8300, int name = 843753044, int icon_name = 290806788, int title = 290806788, int focus_frame = 290806788, int root_window = 1108712448, int selected_window = 1108712448, int minibuffer_window = 1104072192, int param_alist = 1373797428, int scroll_bars = 1113417728, int condemned_scroll_bars = 290806788, int menu_bar_items = 1104009216, int face_alist = 1372527148, int menu_bar_vector = 1104330752, int menu_bar_items_used = 5893, int buffer_predicate = 290806788, int buffer_list = 1375180340, int menu_bar_window = 1104156672, int tool_bar_window = 1104163328, int tool_bar_items = 290806788, int desired_tool_bar_string = 290806788, int current_tool_bar_string = 290806788, struct face_cache * face_cache = 0x01cea520, char * namebuf = 0x01575f68, 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 = 0, int n_tool_bar_items = 0, char * decode_mode_spec_buffer = 0x01d05e00, int * insert_line_cost = 0x02088900, int * delete_line_cost = 0x01e06300, int * insert_n_lines_cost = 0x01e06200, int * delete_n_lines_cost = 0x01ff0000, int height = 35, int width = 96, int window_width = 100, int window_height = 0, int new_height = 0, int new_width = 0, enum output_method output_method = output_w32, union output_data output_data = { struct x_output * x = 0x01cddb00, struct w32_output * w32 = 0x01cddb00, struct mac_output * mac = 0x01cddb00, int nothing = 30268160 }, 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, char auto_raise = 0, char auto_lower = 0, char no_split = 0, char explicit_name = 0, char window_sizes_changed = 0, char * message_buf = 0x01d05000, int scroll_bottom_vpos = -1, int scroll_bar_pixel_width = 16, int scroll_bar_cols = 2, int cost_calculation_baud_rate = 19200, char mouse_moved = 1, double gamma = 0.000000, int extra_line_spacing = 0, unsigned int resized_p }, int first_time = 0, int deep_p = 1 ) ... { > HMENU old_widget = f->output_data.w32->menubar_widget; f->output_data.w32->menubar_widget = menubar_widget; ... 011101DF emacs.exe:011101DF x_activate_menubar w32menu.c:958 void x_activate_menubar( FRAME_PTR f = &{ int size = 536871998, struct Lisp_Vector * next = 0x01ce8300, int name = 843753044, int icon_name = 290806788, int title = 290806788, int focus_frame = 290806788, int root_window = 1108712448, int selected_window = 1108712448, int minibuffer_window = 1104072192, int param_alist = 1373797428, int scroll_bars = 1113417728, int condemned_scroll_bars = 290806788, int menu_bar_items = 1104009216, int face_alist = 1372527148, int menu_bar_vector = 1104330752, int menu_bar_items_used = 5893, int buffer_predicate = 290806788, int buffer_list = 1375180340, int menu_bar_window = 1104156672, int tool_bar_window = 1104163328, int tool_bar_items = 290806788, int desired_tool_bar_string = 290806788, int current_tool_bar_string = 290806788, struct face_cache * face_cache = 0x01cea520, char * namebuf = 0x01575f68, 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 = 0, int n_tool_bar_items = 0, char * decode_mode_spec_buffer = 0x01d05e00, int * insert_line_cost = 0x02088900, int * delete_line_cost = 0x01e06300, int * insert_n_lines_cost = 0x01e06200, int * delete_n_lines_cost = 0x01ff0000, int height = 35, int width = 96, int window_width = 100, int window_height = 0, int new_height = 0, int new_width = 0, enum output_method output_method = output_w32, union output_data output_data = { struct x_output * x = 0x01cddb00, struct w32_output * w32 = 0x01cddb00, struct mac_output * mac = 0x01cddb00, int nothing = 30268160 }, 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, char auto_raise = 0, char auto_lower = 0, char no_split = 0, char explicit_name = 0, char window_sizes_changed = 0, char * message_buf = 0x01d05000, int scroll_bottom_vpos = -1, int scroll_bar_pixel_width = 16, int scroll_bar_cols = 2, int cost_calculation_baud_rate = 19200, char mouse_moved = 1, double gamma = 0.000000, int extra_line_spacing = 0, unsigned int resized_p } ) ... /* Signal input thread to return from WM_INITMENU. */ > complete_deferred_msg (FRAME_W32_WINDOW (f), WM_INITMENU, 0); } ... 01009761 emacs.exe:01009761 kbd_buffer_get_event keyboard.c:3783 static int kbd_buffer_get_event( KBOARD * * kbp = &0x0125d220, int * used_mouse_menu = &0 ) ... input_pending = readable_events (0); if (FRAME_LIVE_P (XFRAME (event->frame_or_window))) > x_activate_menubar (XFRAME (event->frame_or_window)); } #endif ... 010081C3 emacs.exe:010081C3 read_char keyboard.c:2638 int read_char( int commandflag = 1, int nmaps = 11, int * maps = &1373421628, int prev_event = 290806788, int * used_mouse_menu = &0 ) ... restore_getcjmp (local_getcjmp); timer_start_idle (); > c = kbd_buffer_get_event (&kb, used_mouse_menu); restore_getcjmp (save_jump); ... 0100EAC9 emacs.exe:0100EAC9 read_key_sequence keyboard.c:8363 static int read_key_sequence( int * keybuf = &299433876, int bufsize = 30, int prompt = 290806788, int dont_downcase_last = 0, int can_return_switch_frame = 1, int fix_current_buffer = 1 ) ... } #endif > key = read_char (NILP (prompt), nmaps, (Lisp_Object *) submaps, last_nonmenu_event, &used_mouse_menu); ... 01006750 emacs.exe:01006750 command_loop_1 keyboard.c:1470 int command_loop_1( ) ... /* Read next key sequence; i gets its length. */ > i = read_key_sequence (keybuf, sizeof keybuf / sizeof keybuf[0], Qnil, 0, 1, 1); ... 0101AE4C emacs.exe:0101AE4C internal_condition_case eval.c:1349 int internal_condition_case( int ()(void) * bfun = &0x01006454, int handlers = 290929124, int ()(void) * hfun = &0x01005f64 ) ... handlerlist = &h; > val = (*bfun) (); catchlist = c.next; handlerlist = h.next; ... 01006210 emacs.exe:01006210 command_loop_2 keyboard.c:1271 int command_loop_2( ) ... do > val = internal_condition_case (command_loop_1, Qerror, cmd_error); while (!NILP (val)); ... 0101A9E4 emacs.exe:0101A9E4 internal_catch eval.c:1109 int internal_catch( int tag = 290881452, int ()(void) * func = &0x010061f0, int arg = 290806788 ) ... /* Call FUNC. */ if (! _setjmp (c.jmp)) > c.val = (*func) (arg); /* Throw works by a longjmp that comes right here. */ ... 010061C2 emacs.exe:010061C2 command_loop keyboard.c:1251 int command_loop( ) ... internal_catch (Qtop_level, top_level_1, Qnil); internal_catch (Qtop_level, command_loop_2, Qnil); > executing_macro = Qnil; /* End of file in -batch run causes exit here. */ ... 01005D33 emacs.exe:01005D33 recursive_edit_1 keyboard.c:966 int recursive_edit_1( ) ... redisplaying_p = 0; > val = command_loop (); if (EQ (val, Qt)) Fsignal (Qquit, Qnil); ... 01005E5F emacs.exe:01005E5F Frecursive_edit keyboard.c:1023 int Frecursive_edit( ) ... recursive_edit_1 (); > return unbind_to (count, Qnil); } ... 01003298 emacs.exe:01003298 main emacs.c:1627 int main( int argc = 1, char * * argv = &0x012584c0, char * * envp = &0x43414d45 ) ... Frecursive_edit (); /* NOTREACHED */ > return 0; } ... 010010EC emacs.exe:010010EC 01001203 emacs.exe:01001203 010042CD emacs.exe:010042CD _start unexw32.c:135 void _start( ) ... nCmdShow = SW_SHOWDEFAULT; #endif > mainCRTStartup (); } ... 77F1BBB5 KERNEL32.dll:77F1BBB5 GetProcessPriorityBoost