[Top][All Lists]
[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
- Emacs crashes when displaying the Euro character, Milan Zamazal, 2006/08/23
- Re: Emacs crashes when displaying the Euro character, Nick Roberts, 2006/08/23
- Re: Emacs crashes when displaying the Euro character, Milan Zamazal, 2006/08/23
- Re: Emacs crashes when displaying the Euro character, Richard Stallman, 2006/08/24
- Re: Emacs crashes when displaying the Euro character, Nick Roberts, 2006/08/24
- Re: Emacs crashes when displaying the Euro character, Milan Zamazal, 2006/08/24
- Re: Emacs crashes when displaying the Euro character, Nick Roberts, 2006/08/24
- Re: Emacs crashes when displaying the Euro character, Milan Zamazal, 2006/08/24
- Re: Emacs crashes when displaying the Euro character, Milan Zamazal, 2006/08/30
- Re: Emacs crashes when displaying the Euro character, Milan Zamazal, 2006/08/30
- Re: Emacs crashes when displaying the Euro character,
Chong Yidong <=
- Re: Emacs crashes when displaying the Euro character, Richard Stallman, 2006/08/31
- Re: Emacs crashes when displaying the Euro character, Richard Stallman, 2006/08/31
- Re: Emacs crashes when displaying the Euro character, Richard Stallman, 2006/08/25
- Re: Emacs crashes when displaying the Euro character, Kenichi Handa, 2006/08/24
- Re: Emacs crashes when displaying the Euro character, Chong Yidong, 2006/08/25
- Re: Emacs crashes when displaying the Euro character, Richard Stallman, 2006/08/25