emacs-devel
[Top][All Lists]
Advanced

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

recent emacs input crashes (X/GTK related)


From: Miles Bader
Subject: recent emacs input crashes (X/GTK related)
Date: 15 Apr 2004 15:51:31 +0900

Quite recently (only within the last few days?) I've very frequently
seen emacs crash like the following:

  1) create a new window with C-x 5 2
  2) switch to the new window
  3) try to give some emacs command in it -- and notice it doesn't respond
  4) switching back to the old window allows you to enter commands just
     like normal, it's just the new window that ignores all inputs
  5) deleting the new window will usually then make emacs crash shortly
     (I usually make a new new window after that, but I'm not sure if
     it's necessary)
  6) sometimes it crashes directly at step 3

Here's a backtrace from point 5:

   Current directory is /usr/local/
   GNU gdb 6.1-debian
   Copyright 2004 Free Software Foundation, Inc.
   GDB is free software, covered by the GNU General Public License, and you are
   welcome to change it and/or distribute copies of it under certain conditions.
   Type "show copying" to see the conditions.
   There is absolutely no warranty for GDB.  Type "show warranty" for details.
   This GDB was configured as "i386-linux"...Using host libthread_db library 
"/lib/tls/libthread_db.so.1".

   (gdb) run
   Starting program: /usr/local/bin/emacs 

   Program received signal SIGSEGV, Segmentation fault.
   0x40bdd110 in _XimCbDispatch () from 
/usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2
   (gdb) ba
   #0  0x40bdd110 in _XimCbDispatch () from 
/usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2
   #1  0x40bdd2b2 in _XimCbDispatch () from 
/usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2
   #2  0x40596ce5 in XFilterEvent () from /usr/X11R6/lib/libX11.so.6
   #3  0x080fc144 in event_handler_gdk (gxev=0xbfffccb4, ev=0x86a46c8, 
data=0x0) at /usr/local/src/emacs/miles/src/xterm.c:5749
   #4  0x4032fd68 in gdk_event_get_graphics_expose () from 
/usr/lib/libgdk-x11-2.0.so.0
   #5  0x4033072b in gdk_x11_register_standard_event_type () from 
/usr/lib/libgdk-x11-2.0.so.0
   #6  0x40331dcd in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
   #7  0x40331f61 in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
   #8  0x4046004a in g_main_depth () from /usr/lib/libglib-2.0.so.0
   #9  0x40461128 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
   #10 0x40461460 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
   #11 0x404616cd in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
   #12 0x401379d5 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
   #13 0x080fd98c in XTread_socket (sd=0, expected=1, hold_quit=0xbfffdf74) at 
/usr/local/src/emacs/miles/src/xterm.c:7148
   #14 0x0812e265 in read_avail_input (expected=1) at 
/usr/local/src/emacs/miles/src/keyboard.c:6625
   #15 0x0812e44c in handle_async_input () at 
/usr/local/src/emacs/miles/src/keyboard.c:6767
   #16 0x0812e491 in input_available_signal (signo=29) at 
/usr/local/src/emacs/miles/src/keyboard.c:6806
   #17 <signal handler called>
   #18 0x40721758 in select () from /lib/tls/libc.so.6
   #19 0x081bbb1b in wait_reading_process_input (time_limit=0, microsecs=0, 
read_kbd=536870911, do_display=1) at 
/usr/local/src/emacs/miles/src/process.c:4319
   #20 0x0812af53 in kbd_buffer_get_event (kbp=0xbfffe5ac, 
used_mouse_menu=0xbfffe7c8) at /usr/local/src/emacs/miles/src/keyboard.c:3846
   #21 0x081297be in read_char (commandflag=1, nmaps=2, maps=0xbfffe78c, 
prev_event=675385360, used_mouse_menu=0xbfffe7c8) at 
/usr/local/src/emacs/miles/src/keyboard.c:2787
   #22 0x08130a87 in read_key_sequence (keybuf=0xbfffe8f0, bufsize=30, 
prompt=675385360, dont_downcase_last=0, can_return_switch_frame=1, 
fix_current_buffer=1) at /usr/local/src/emacs/miles/src/keyboard.c:8770
   #23 0x08126e33 in command_loop_1 () at 
/usr/local/src/emacs/miles/src/keyboard.c:1476
   #24 0x08186d8e in internal_condition_case (bfun=0x8126c90 <command_loop_1>, 
handlers=675445256, hfun=0x81267e0 <cmd_error>) at 
/usr/local/src/emacs/miles/src/eval.c:1406
   #25 0x08126b3e in command_loop_2 () at 
/usr/local/src/emacs/miles/src/keyboard.c:1264
   #26 0x081868eb in internal_catch (tag=1, func=0x8126b10 <command_loop_2>, 
arg=675385360) at /usr/local/src/emacs/miles/src/eval.c:1167
   #27 0x08126ade in command_loop () at 
/usr/local/src/emacs/miles/src/keyboard.c:1243
   #28 0x08126574 in recursive_edit_1 () at 
/usr/local/src/emacs/miles/src/keyboard.c:959
   #29 0x081266a1 in Frecursive_edit () at 
/usr/local/src/emacs/miles/src/keyboard.c:1015
   #30 0x08124d80 in main (argc=1, argv=0xbfffefa4) at 
/usr/local/src/emacs/miles/src/emacs.c:1692
   (gdb) up
   #1  0x40bdd2b2 in _XimCbDispatch () from 
/usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2
   (gdb) 
   #2  0x40596ce5 in XFilterEvent () from /usr/X11R6/lib/libX11.so.6
   (gdb) 
   #3  0x080fc144 in event_handler_gdk (gxev=0xbfffccb4, ev=0x86a46c8, 
data=0x0) at /usr/local/src/emacs/miles/src/xterm.c:5749
   (gdb) li
   5744 #ifdef HAVE_X_I18N
   5745       /* Filter events for the current X input method.
   5746          GTK calls XFilterEvent but not for key press and release,
   5747          so we do it here.  */
   5748       if (xev->type == KeyPress || xev->type == KeyRelease)
   5749         if (dpyinfo && x_filter_event (dpyinfo, xev))
   5750           return GDK_FILTER_REMOVE;
   5751 #endif
   5752 
   5753       if (! dpyinfo)
   (gdb) p xev
   No symbol "xev" in current context.
   (gdb) p gxev
   $1 = (GdkXEvent *) 0xbfffccb4
   (gdb) p *(XEvent *)gxev
   $2 = {type = 2, xany = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, window = 33554901}, xkey = {type = 2, serial = 
7447, 
       send_event = 0, display = 0x8671590, window = 33554901, root = 59, 
       subwindow = 0, time = 20910668, x = 213, y = 161, x_root = 224, 
       y_root = 301, state = 0, keycode = 37, same_screen = 1}, xbutton = {
       type = 2, serial = 7447, send_event = 0, display = 0x8671590, 
       window = 33554901, root = 59, subwindow = 0, time = 20910668, x = 213, 
       y = 161, x_root = 224, y_root = 301, state = 0, button = 37, 
       same_screen = 1}, xmotion = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, window = 33554901, root = 59, subwindow = 0, 
       time = 20910668, x = 213, y = 161, x_root = 224, y_root = 301, state = 
0, 
       is_hint = 37 '%', same_screen = 1}, xcrossing = {type = 2, serial = 
7447, 
       send_event = 0, display = 0x8671590, window = 33554901, root = 59, 
       subwindow = 0, time = 20910668, x = 213, y = 161, x_root = 224, 
       y_root = 301, mode = 0, detail = 37, same_screen = 1, focus = 33554685, 
       state = 4294967295}, xfocus = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, window = 33554901, mode = 59, detail = 0}, 
     xexpose = {type = 2, serial = 7447, send_event = 0, display = 0x8671590, 
       window = 33554901, x = 59, y = 0, width = 20910668, height = 213, 
       count = 161}, xgraphicsexpose = {type = 2, serial = 7447, send_event = 
0, 
       display = 0x8671590, drawable = 33554901, x = 59, y = 0, 
       width = 20910668, height = 213, count = 161, major_code = 224, 
       minor_code = 301}, xnoexpose = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, drawable = 33554901, major_code = 59, 
       minor_code = 0}, xvisibility = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, window = 33554901, state = 59}, xcreatewindow = {
       type = 2, serial = 7447, send_event = 0, display = 0x8671590, 
       parent = 33554901, window = 59, x = 0, y = 20910668, width = 213, 
       height = 161, border_width = 224, override_redirect = 301}, 
     xdestroywindow = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, event = 33554901, window = 59}, xunmap = {type = 2, 
       serial = 7447, send_event = 0, display = 0x8671590, event = 33554901, 
       window = 59, from_configure = 0}, xmap = {type = 2, serial = 7447, 
       send_event = 0, display = 0x8671590, event = 33554901, window = 59, 
       override_redirect = 0}, xmaprequest = {type = 2, serial = 7447, 
       send_event = 0, display = 0x8671590, parent = 33554901, window = 59}, 
     xreparent = {type = 2, serial = 7447, send_event = 0, display = 0x8671590, 
       event = 33554901, window = 59, parent = 0, x = 20910668, y = 213, 
       override_redirect = 161}, xconfigure = {type = 2, serial = 7447, 
       send_event = 0, display = 0x8671590, event = 33554901, window = 59, 
       x = 0, y = 20910668, width = 213, height = 161, border_width = 224, 
       above = 301, override_redirect = 0}, xgravity = {type = 2, serial = 
7447, 
       send_event = 0, display = 0x8671590, event = 33554901, window = 59, 
       x = 0, y = 20910668}, xresizerequest = {type = 2, serial = 7447, 
       send_event = 0, display = 0x8671590, window = 33554901, width = 59, 
       height = 0}, xconfigurerequest = {type = 2, serial = 7447, 
       send_event = 0, display = 0x8671590, parent = 33554901, window = 59, 
       x = 0, y = 20910668, width = 213, height = 161, border_width = 224, 
       above = 301, detail = 0, value_mask = 37}, xcirculate = {type = 2, 
       serial = 7447, send_event = 0, display = 0x8671590, event = 33554901, 
       window = 59, place = 0}, xcirculaterequest = {type = 2, serial = 7447, 
       send_event = 0, display = 0x8671590, parent = 33554901, window = 59, 
       place = 0}, xproperty = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, window = 33554901, atom = 59, time = 0, 
       state = 20910668}, xselectionclear = {type = 2, serial = 7447, 
       send_event = 0, display = 0x8671590, window = 33554901, selection = 59, 
       time = 0}, xselectionrequest = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, owner = 33554901, requestor = 59, selection = 0, 
       target = 20910668, property = 213, time = 161}, xselection = {type = 2, 
       serial = 7447, send_event = 0, display = 0x8671590, requestor = 
33554901, 
       selection = 59, target = 0, property = 20910668, time = 213}, 
     xcolormap = {type = 2, serial = 7447, send_event = 0, display = 0x8671590, 
       window = 33554901, colormap = 59, new = 0, state = 20910668}, xclient = {
       type = 2, serial = 7447, send_event = 0, display = 0x8671590, 
       window = 33554901, message_type = 59, format = 0, data = {
         b = "L\022?\001�\000\000\000�\000\000\000�\000\000\000-\001\000", s = {
           4684, 319, 213, 0, 161, 0, 224, 0, 301, 0}, l = {20910668, 213, 161, 
           224, 301}}}, xmapping = {type = 2, serial = 7447, send_event = 0, 
       display = 0x8671590, window = 33554901, request = 59, first_keycode = 0, 
       count = 20910668}, xerror = {type = 2, display = 0x1d17, resourceid = 0, 
       serial = 140973456, error_code = 213 '�', request_code = 1 '\001', 
       minor_code = 0 '\0'}, xkeymap = {type = 2, serial = 7447, send_event = 
0, 
       display = 0x8671590, window = 33554901, 
       key_vector = 
";\000\000\000\000\000\000\000L\022?\001�\000\000\000�\000\000\000�\000\000\000-\001\000\000\000\000\000"},
 pad = {2, 7447, 0, 140973456, 
       33554901, 59, 0, 20910668, 213, 161, 224, 301, 0, 37, 1, 33554685, -1, 
       -12, -141, 33554454, 0, 0, 0, 0}}
   (gdb) p *dpyinfo
   $3 = {next = 0x0, connection = 7, display = 0x8671590, 
     name_list_element = -1470323280, reference_count = 2, screen = 0x86725a8, 
     resx = 95.064327485380105, resy = 95.976383763837632, visual = 0x8672658, 
     cmap = 32, n_planes = 24, height = 1024, width = 1280, grabbed = 0, 
     icon_bitmap_id = -1, root_window = 59, client_leader_window = 0, 
     vertical_scroll_bar_cursor = 33554443, xg_cursor = 0x8685398, 
     xrdb = 0x86853b0, font_table = 0x86b0400, font_table_size = 16, 
     smallest_char_width = 10, smallest_font_height = 16, 
     scratch_cursor_gc = 0x0, mouse_face_beg_row = -1, mouse_face_beg_col = -1, 
     mouse_face_beg_x = 0, mouse_face_beg_y = 0, mouse_face_end_row = -1, 
     mouse_face_end_col = -1, mouse_face_end_x = 0, mouse_face_end_y = 0, 
     mouse_face_past_end = 0, mouse_face_window = 675385360, 
     mouse_face_face_id = 0, mouse_face_overlay = 675385360, 
     mouse_face_deferred_gc = 0, mouse_face_mouse_frame = 0x89b0148, 
     mouse_face_mouse_x = 212, mouse_face_mouse_y = 160, mouse_face_defer = 0, 
     mouse_face_hidden = 0, mouse_face_image_state = 0, 
     x_id_name = 0x8697c80 "address@hidden", n_fonts = 4, 
     bitmaps = 0x0, bitmaps_size = 0, bitmaps_last = 0, meta_mod_mask = 8, 
     shift_lock_mask = 0, alt_mod_mask = 0, super_mod_mask = 64, 
     hyper_mod_mask = 0, Xatom_wm_protocols = 223, Xatom_wm_take_focus = 221, 
     Xatom_wm_save_yourself = 275, Xatom_wm_delete_window = 220, 
     Xatom_wm_change_state = 281, Xatom_wm_configure_denied = 449, 
     Xatom_wm_window_moved = 450, Xatom_wm_client_leader = 226, 
     Xatom_editres = 451, Xatom_CLIPBOARD = 452, Xatom_TIMESTAMP = 311, 
     Xatom_TEXT = 453, Xatom_DELETE = 454, Xatom_COMPOUND_TEXT = 241, 
     Xatom_UTF8_STRING = 217, Xatom_MULTIPLE = 310, Xatom_INCR = 402, 
     Xatom_EMACS_TMP = 455, Xatom_TARGETS = 309, Xatom_NULL = 456, 
     Xatom_ATOM_PAIR = 313, Xatom_PIXEL_SIZE = 183, 
     Xatom_MULE_BASELINE_OFFSET = 457, Xatom_MULE_RELATIVE_COMPOSE = 458, 
     Xatom_MULE_DEFAULT_ASCENT = 459, Xatom_DONE = 461, Xatom_PAGE = 460, 
     Xatom_Scrollbar = 462, kboard = 0x8682bb0, cut_buffers_initialized = 0, 
     x_focus_frame = 0x89b0148, x_focus_event_frame = 0x89b0148, 
     x_highlight_frame = 0x89b0148, null_pixel = 33554444, gray = 33554446, 
     image_cache = 0x86853e8, xim = 0x869b288, xim_styles = 0x869b4b8, 
     color_cells = 0x0, ncolor_cells = 0, red_bits = 8, blue_bits = 8, 
     green_bits = 8, red_offset = 16, blue_offset = 0, green_offset = 8, 
     wm_type = X_WMTYPE_UNKNOWN}
   (gdb) down
   #2  0x40596ce5 in XFilterEvent () from /usr/X11R6/lib/libX11.so.6
   (gdb) p current_finish
   $4 = 0
   (gdb) p current_hold_quit
   $5 = (struct input_event *) 0xbfffdf74
   (gdb) p *current_hold_quit
   $6 = {kind = NO_EVENT, code = 0, part = scroll_bar_above_handle, 
     modifiers = 0, x = 0, y = 0, timestamp = 0, padding = {0x0, 0x0}, 
     frame_or_window = 0, arg = 0}
   (gdb) p current_count
   $7 = 0
   (gdb) down
   #1  0x40bdd2b2 in _XimCbDispatch () from 
/usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2
   (gdb) up
   #2  0x40596ce5 in XFilterEvent () from /usr/X11R6/lib/libX11.so.6
   (gdb) 
   #3  0x080fc144 in event_handler_gdk (gxev=0xbfffccb4, ev=0x86a46c8, 
data=0x0) at /usr/local/src/emacs/miles/src/xterm.c:5749
   (gdb) list x_filter_event
   5704 #ifdef HAVE_X_I18N
   5705 static int
   5706 x_filter_event (dpyinfo, event)
   5707      struct x_display_info *dpyinfo;
   5708      XEvent *event;
   5709 {
   5710   /* XFilterEvent returns non-zero if the input method has
   5711    consumed the event.  We pass the frame's X window to
   5712    XFilterEvent because that's the one for which the IC
   5713    was created.  */
   (gdb) 
   5714 
   5715   struct frame *f1 = x_any_window_to_frame (dpyinfo,
   5716                                             event->xclient.window);
   5717 
   5718   return XFilterEvent (event, f1 ? FRAME_X_WINDOW (f1) : None);
   5719 }
   5720 #endif
   5721 
   5722 #ifdef USE_GTK
   5723 static int current_count;
   (gdb) p ((XEvent *)gxev)->xclient.window
   $8 = 33554901

-miles
-- 
We have met the enemy, and he is us.  -- Pogo




reply via email to

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