From: David Ponce <david@dponce.com>
Subject: NT Emacs crashes when selecting a menubar item
Date: Wed, 24 Jul 2002 20:55:45 +0200 [thread overview]
Message-ID: <3D3EF831.3040008@dponce.com> (raw)
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
next reply other threads:[~2002-07-24 18:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-24 18:55 David Ponce [this message]
2002-07-25 18:07 ` NT Emacs crashes when selecting a menubar item Richard Stallman
2002-07-26 12:30 ` David Ponce
2002-07-27 18:52 ` Richard Stallman
2002-07-28 16:56 ` David Ponce
2002-07-29 17:30 ` Richard Stallman
2002-07-29 18:16 ` David Ponce
2002-07-30 18:46 ` Richard Stallman
-- strict thread matches above, loose matches on Subject: below --
2002-07-30 11:28 David PONCE
[not found] <3D2A791A00A0862A@mel-rta9.wanadoo.fr>
2002-07-31 21:57 ` Richard Stallman
2002-07-31 22:37 ` David Ponce
2002-08-01 7:54 jasonr
2002-08-01 11:39 David PONCE
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D3EF831.3040008@dponce.com \
--to=david@dponce.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).