emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: Emacs crashes when displaying the Euro character


From: Chong Yidong
Subject: Re: Emacs crashes when displaying the Euro character
Date: Wed, 30 Aug 2006 10:28:00 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Milan Zamazal <address@hidden> writes:

> I've got another crash, this time temporarily reproducible (and with
> Emacs .gdbinit loaded before the crash).  It happens on visiting a file
> containing certain characters.

Your X server is firing off X errors.  To extract the X error message,
do

  f 1
  p *error

and tell us what you see.

The X error seems to be coming from the call to XPending.  The X
libraries manual does not state that XPending can signal an X error,
but maybe this is a documentation flaw in the X manual.  In any case,
try this patch; it should eliminate this particular crash.

*** emacs/src/xterm.c.~1.924.~  2006-08-25 14:00:08.000000000 -0400
--- emacs/src/xterm.c   2006-08-30 10:27:20.000000000 -0400
***************
*** 6966,6972 ****
  {
    int count = 0;
    XEvent event;
!   int event_found = 0;
    struct x_display_info *dpyinfo;
  
    if (interrupt_input_blocked)
--- 6966,6972 ----
  {
    int count = 0;
    XEvent event;
!   int pending, event_found = 0;
    struct x_display_info *dpyinfo;
  
    if (interrupt_input_blocked)
***************
*** 7037,7047 ****
  #endif
  
  #ifndef USE_GTK
!       while (XPending (dpyinfo->display))
        {
            int finish;
  
          XNextEvent (dpyinfo->display, &event);
  
  #ifdef HAVE_X_I18N
            /* Filter events for the current X input method.  */
--- 7037,7051 ----
  #endif
  
  #ifndef USE_GTK
!       x_catch_errors (dpyinfo->display);
!       pending = XPending (dpyinfo->display);
! 
!       while (pending)
        {
            int finish;
  
          XNextEvent (dpyinfo->display, &event);
+         x_uncatch_errors ();
  
  #ifdef HAVE_X_I18N
            /* Filter events for the current X input method.  */
***************
*** 7054,7060 ****
--- 7058,7068 ----
  
            if (finish == X_EVENT_GOTO_OUT)
              goto out;
+ 
+         x_catch_errors (dpyinfo->display);
+         pending = XPending (dpyinfo->display);
          }
+       x_uncatch_errors ();
  #endif /* not USE_GTK */
      }
  


> GNU Emacs 22.0.50.1 (x86_64-unknown-linux-gnu, X toolkit) of 2006-08-29 on 
> blackbird
>
> Breakpoint 3, x_error_quitter (display=0xe1c8b0, error=0x7fffffe77530) at 
> xterm.c:7825
> 7825    {
> (gdb) xbacktrace
> (gdb) bt full
> #0  x_error_quitter (display=0xe1c8b0, error=0x7fffffe77530) at xterm.c:7825
>         buf = "\000\000\000\000\000\000\000\000\000/address@hidden,T+", '\0' 
> <repeats 26 times>, "\001", '\0' <repeats 15 times>, "\265\320q\001", '\0' 
> <repeats 12 times>, 
> "xv\347\377\377\177\000\000pu\347\377\377\177\000\000\320t\347\377\377\177\000\000\210\305\206\000\000\000\000\000\212\003Q\000\001\000\000\000\350\327}-T+\000\000\250u\347\377\377\177\000\000\240\324}-T+\000\000\362}\347\377\377\177\000\000\240{\347\377\377\177\000\000\031\327\005.T+\000"...
>         buf1 = 
> "\004\000\000\000\000\000\000\000\000/\001\001\000\000\000\000\001\000\000\000\000\000\000\000`s\347\377\377\177\000\000\300r\347\377\377\177\000\000\240\202\366\000\000\000\000\0000;\235\001\000\000\000\000\225\327q\001\001",
>  '\0' <repeats 19 times>, "address@hidden"...
> #1  0x00000000004829fa in x_error_handler (display=0xe1c8b0, 
> error=0x7fffffe77530) at xterm.c:7796
> No locals.
> #2  0x00002b542d9364ee in _XError () from /usr/lib/libX11.so.6
> No symbol table info available.
> #3  0x00002b542d938fae in _XEventsQueued () from /usr/lib/libX11.so.6
> No symbol table info available.
> #4  0x00002b542d9257bd in XPending () from /usr/lib/libX11.so.6
> No symbol table info available.
> #5  0x00000000004864e0 in XTread_socket (sd=<value optimized out>, 
> expected=<value optimized out>, hold_quit=0x7fffffe78fc0) at xterm.c:7040
>         inev = {
>   kind = NO_EVENT,
>   code = 0,
>   part = 4293364192,
>   modifiers = 32767,
>   x = 4314331,
>   y = 390,
>   timestamp = 140737486752784,
>   padding = {0x4237ec, 0x0},
>   frame_or_window = 47640541730862,
>   arg = 35184911065151
> }
>         count = 0
>         event = {
>   type = 22,
>   xany = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0
>   },
>   xkey = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     root = 0,
>     subwindow = 0,
>     time = 0,
>     x = 79,
>     y = 32767,
>     x_root = 0,
>     y_root = 1,
>     state = 4293361488,
>     keycode = 32767,
>     same_screen = 14796976
>   },
>   xbutton = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     root = 0,
>     subwindow = 0,
>     time = 0,
>     x = 79,
>     y = 32767,
>     x_root = 0,
>     y_root = 1,
>     state = 4293361488,
>     button = 32767,
>     same_screen = 14796976
>   },
>   xmotion = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     root = 0,
>     subwindow = 0,
>     time = 0,
>     x = 79,
>     y = 32767,
>     x_root = 0,
>     y_root = 1,
>     state = 4293361488,
>     is_hint = -1 '\377',
>     same_screen = 14796976
>   },
>   xcrossing = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     root = 0,
>     subwindow = 0,
>     time = 0,
>     x = 79,
>     y = 32767,
>     x_root = 0,
>     y_root = 1,
>     mode = -1605808,
>     detail = 32767,
>     same_screen = 14796976,
>     focus = 0,
>     state = 1
>   },
>   xfocus = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     mode = 0,
>     detail = 0
>   },
>   xexpose = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     x = 0,
>     y = 0,
>     width = 0,
>     height = 0,
>     count = 0
>   },
>   xgraphicsexpose = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     drawable = 0,
>     x = 0,
>     y = 0,
>     width = 0,
>     height = 0,
>     count = 0,
>     major_code = 0,
>     minor_code = 79
>   },
>   xnoexpose = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     drawable = 0,
>     major_code = 0,
>     minor_code = 0
>   },
>   xvisibility = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     state = 0
>   },
>   xcreatewindow = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     parent = 0,
>     window = 0,
>     x = 0,
>     y = 0,
>     width = 0,
>     height = 0,
>     border_width = 79,
>     override_redirect = 32767
>   },
>   xdestroywindow = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     event = 0,
>     window = 0
>   },
>   xunmap = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     event = 0,
>     window = 0,
>     from_configure = 0
>   },
>   xmap = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     event = 0,
>     window = 0,
>     override_redirect = 0
>   },
>   xmaprequest = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     parent = 0,
>     window = 0
>   },
>   xreparent = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     event = 0,
>     window = 0,
>     parent = 0,
>     x = 0,
>     y = 0,
>     override_redirect = 79
>   },
>   xconfigure = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     event = 0,
>     window = 0,
>     x = 0,
>     y = 0,
>     width = 0,
>     height = 0,
>     border_width = 79,
>     above = 4294967296,
>     override_redirect = -1605808
>   },
>   xgravity = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     event = 0,
>     window = 0,
>     x = 0,
>     y = 0
>   },
>   xresizerequest = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     width = 0,
>     height = 0
>   },
>   xconfigurerequest = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     parent = 0,
>     window = 0,
>     x = 0,
>     y = 0,
>     width = 0,
>     height = 0,
>     border_width = 79,
>     above = 4294967296,
>     detail = -1605808,
>     value_mask = 14796976
>   },
>   xcirculate = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     event = 0,
>     window = 0,
>     place = 0
>   },
>   xcirculaterequest = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     parent = 0,
>     window = 0,
>     place = 0
>   },
>   xproperty = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     atom = 0,
>     time = 0,
>     state = 0
>   },
>   xselectionclear = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     selection = 0,
>     time = 0
>   },
>   xselectionrequest = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     owner = 0,
>     requestor = 0,
>     selection = 0,
>     target = 0,
>     property = 140733193388111,
>     time = 4294967296
>   },
>   xselection = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     requestor = 0,
>     selection = 0,
>     target = 0,
>     property = 0,
>     time = 140733193388111
>   },
>   xcolormap = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     colormap = 0,
>     new = 0,
>     state = 0
>   },
>   xclient = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     message_type = 0,
>     format = 0,
>     data = {
>       b = 
> "\000\000\000\000\000\000\000\000O\000\000\000\377\177\000\000\000\000\000",
>       s = {0, 0, 0, 0, 79, 0, 32767, 0, 0, 0},
>       l = {0, 140733193388111, 4294967296, 140737486749520, 14796976}
>     }
>   },
>   xmapping = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     request = 0,
>     first_keycode = 0,
>     count = 0
>   },
>   xerror = {
>     type = 22,
>     display = 0xf684f0,
>     resourceid = 4314331,
>     serial = 14127568,
>     error_code = 0 '\0',
>     request_code = 0 '\0',
>     minor_code = 0 '\0'
>   },
>   xkeymap = {
>     type = 22,
>     serial = 16155888,
>     send_event = 4314331,
>     display = 0xd791d0,
>     window = 0,
>     key_vector = '\0' <repeats 24 times>, "O\000\000\000\377\177\000"
>   },
>   pad = {140733193388054, 16155888, 4314331, 14127568, 0, 0, 0, 0, 
> 140733193388111, 4294967296, 140737486749520, 14796976, 1, 140737486749520, 0,
>     0, 140737486749584, 16287936, 16287976, 4336011, 4293361904, 4313996, 0, 
> 16155296}
> }
>         event_found = 0
>         dpyinfo = (struct x_display_info *) 0xe48dc0
> #6  0x00000000004aec65 in read_avail_input (expected=1) at keyboard.c:6788
>         nr = 0
>         hold_quit = {
>   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
> }
>         i = <value optimized out>
>         nread = 0
> #7  0x00000000004aee2a in handle_async_input () at keyboard.c:6934
>         nread = 0
> #8  0x00000000004aee8a in input_available_signal (signo=<value optimized 
> out>) at keyboard.c:6976
>         old_errno = 0
> #9  <signal handler called>
> No symbol table info available.
> #10 0x00002b542e0e04e5 in select () from /lib/libc.so.6
> No symbol table info available.
> #11 0x0000000000541faf in wait_reading_process_output (time_limit=30, 
> microsecs=0, read_kbd=-1, do_display=1, wait_for_cell=9292177, wait_proc=0x0,
>     just_wait_proc=0) at process.c:4558
>         Atemp = {
>   fds_bits = {140737486755760, 140737486755716, 16155296, 140737486755712, 
> 140737486755704, 4370916, 1, 592, 268435456, 2, 140737486755112,
>     5311269, 0, 0, 0, 0}
> }
>         Ctemp = {
>   fds_bits = {140737486755704, 140737486755696, 4293367216, 171798691840, 
> 140737486755152, 74, 27049509, 8, 140737486755712, 140737486755704,
>     9292177, 171798691840, 140737486755376, 74, 140737486755776, 1}
> }
>         timeout_reduced_for_timers = 1
>         channel = <value optimized out>
>         nfds = 0
>         Available = {
>   fds_bits = {128, 0 <repeats 15 times>}
> }
>         Connecting = {
>   fds_bits = {0 <repeats 16 times>}
> }
>         check_connect = 0
>         check_delay = 0
>         no_avail = 1
>         xerrno = 0
>         proc = <value optimized out>
>         timeout = {
>   tv_sec = 0,
>   tv_usec = 0
> }
>         end_time = {
>   tv_sec = 1156938166,
>   tv_usec = 384766
> }
>         wait_channel = -1
>         got_some_input = 0
> #12 0x000000000040f5e6 in sit_for (timeout=<value optimized out>, reading=1, 
> do_display=1) at dispnew.c:6543
>         sec = 30
>         usec = 0
> #13 0x00000000004b4383 in read_char (commandflag=1, nmaps=4, 
> maps=0x7fffffe79c50, prev_event=9292177, used_mouse_menu=0x7fffffe79d70, 
> end_time=0x0)
>     at keyboard.c:2865
>         tem0 = <value optimized out>
>         delay_level = 4
>         buffer_size = <value optimized out>
>         c = 9292177
>         local_getcjmp = {{
>     __jmpbuf = {0, 0, 0, 1, 0, 22, 140737486756112, 4928215},
>     __mask_was_saved = 0,
>     __saved_mask = {
>       __val = {0 <repeats 16 times>}
>     }
>   }}
>         save_jump = {{
>     __jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0},
>     __mask_was_saved = 0,
>     __saved_mask = {
>       __val = {0 <repeats 16 times>}
>     }
>   }}
>         key_already_recorded = 0
>         tem = <value optimized out>
>         save = <value optimized out>
>         previous_echo_area_message = 9292177
>         also_record = 9292177
>         reread = 0
>         polling_stopped_here = <value optimized out>
> #14 0x00000000004b61f8 in read_key_sequence (keybuf=0x7fffffe79df0, 
> bufsize=30, prompt=9292177, dont_downcase_last=0, can_return_switch_frame=1,
>     fix_current_buffer=1) at keyboard.c:8947
>         interrupted_kboard = (KBOARD *) 0xe49090
>         key = 0
>         used_mouse_menu = 0
>         echo_local_start = 0
>         last_real_key_start = 0
>         keys_local_start = 0
>         local_first_binding = 0
>         from_string = 9292177
>         count = 2
>         t = 0
>         echo_start = 0
>         keys_start = 0
>         nmaps = 4
>         nmaps_allocated = 4
>         defs = (Lisp_Object * volatile) 0x7fffffe79c20
>         submaps = (Lisp_Object * volatile) 0x7fffffe79c50
>         orig_local_map = 26581285
>         orig_keymap = 9292177
>         localized_local_map = 0
>         first_binding = 0
>         first_unbound = 31
>         mock_input = 0
>         fkey = {
>   parent = 9276133,
>   map = 9276133,
>   start = 0,
>   end = 0
> }
>         keytran = {
>   parent = 10975429,
>   map = 10975429,
>   start = 0,
>   end = 0
> }
>         delayed_switch_frame = 9292177
>         original_uppercase = 14628740
>         original_uppercase_position = -1
>         starting_buffer = (struct buffer *) 0x19d3b30
>         fake_prefixed_keys = 9292177
> #15 0x00000000004b7e3a in command_loop_1 () at keyboard.c:1601
>         cmd = <value optimized out>
>         lose = 2
>         nonundocount = 0
>         keybuf = {192, 48, 1, 9292177, 9292273, 9373121, 140737486757504, 
> 5390673, 9266793, 140737486759288, 140737486757504, 5390466, 9390515,
>   9292177, 27048549, 140737486759552, 140737486759560, 140737486759288, 
> 140737486757552, 4923619, 9292177, 27048549, 9292177, 4923925, 0,
>   140737486757592, 140737486757360, 0, 9292177, 13930369}
>         i = 16854784
>         prev_modiff = 22
>         prev_buffer = (struct buffer *) 0x1844ae0
>         was_locked = 0
>         already_adjusted = 0
> #16 0x000000000050f666 in internal_condition_case (bfun=0x4b7c90 
> <command_loop_1>, handlers=9373025, hfun=0x4b20f0 <cmd_error>) at eval.c:1469
>         val = <value optimized out>
>         c = {
>   tag = 9292177,
>   val = 9292177,
>   next = 0x7fffffe7a0b0,
>   gcpro = 0x0,
>   jmp = {{
>       __jmpbuf = {0, 9379920, 9379888, 140737486759552, 140737486759560, 
> 140737486759288, 140737486757664, 5305833},
>       __mask_was_saved = 0,
>       __saved_mask = {
>         __val = {5224320, 25, 14000835, 25, 25, 47640549162752, 
> 47640549105664, 5494240, 6903112, 9379888, 140737486759552, 140737486759560,
>           140737486759288, 9379920, 47640525366915, 1}
>       }
>     }},
>   backlist = 0x0,
>   handlerlist = 0x0,
>   lisp_eval_depth = 0,
>   pdlcount = 2,
>   poll_suppress_count = 1,
>   interrupt_input_blocked = 0,
>   byte_stack = 0x0
> }
>         h = {
>   handler = 9373025,
>   var = 9292177,
>   chosen_clause = 9292273,
>   tag = 0x7fffffe79f40,
>   next = 0x0
> }
> #17 0x00000000004b143a in command_loop_2 () at keyboard.c:1326
>         val = 1
> #18 0x000000000050f767 in internal_catch (tag=<value optimized out>, 
> func=0x4b1420 <command_loop_2>, arg=9292177) at eval.c:1210
>         c = {
>   tag = 9364081,
>   val = 9292177,
>   next = 0x0,
>   gcpro = 0x0,
>   jmp = {{
>       __jmpbuf = {0, 9379920, 9379888, 140737486759552, 140737486759560, 
> 140737486759288, 140737486758048, 5306203},
>       __mask_was_saved = 0,
>       __saved_mask = {
>         __val = {25, 140737486759552, 0, 47196162403984, 0, 5494240, 9629138, 
> 9629136, 9633648, 9344496, 9633649, 9292177, 5249078, 0, 4294967296,
>           9292225}
>       }
>     }},
>   backlist = 0x0,
>   handlerlist = 0x0,
>   lisp_eval_depth = 0,
>   pdlcount = 2,
>   poll_suppress_count = 1,
>   interrupt_input_blocked = 0,
>   byte_stack = 0x0
> }
> #19 0x00000000004b1f2a in command_loop () at keyboard.c:1305
> No locals.
> #20 0x00000000004b22ea in recursive_edit_1 () at keyboard.c:1003
>         val = <value optimized out>
> #21 0x00000000004b23e8 in Frecursive_edit () at keyboard.c:1064
>         buffer = <value optimized out>
> #22 0x00000000004a835e in main (argc=3, argv=0x7fffffe7a688) at emacs.c:1794
>         tz = 0x0
>         dummy = 0
>         stack_bottom_variable = 0 '\0'
>         do_initial_setlocale = -1595776
>         skip_args = 0
>         rlim = {
>   rlim_cur = 8720000,
>   rlim_max = 18446744073709551615
> }
>         no_loadup = 0
>         junk = 0x0





reply via email to

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