emacs-devel
[Top][All Lists]
Advanced

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

NT Emacs crashes when selecting a menubar item


From: David Ponce
Subject: NT Emacs crashes when selecting a menubar item
Date: Wed, 24 Jul 2002 20:55:45 +0200
User-agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.1b) Gecko/20020720

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






reply via email to

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