Subject: bug#9087: Crash reading from minibuffer with icomplete-mode

From: Juanma Barranquero <[email-masked]>
Date: Mon, 18 Jul 2011 13:53:47 +0200

On Mon, Jul 18, 2011 at 05:01, Eli Zaretskii <[email-masked]> wrote:

> It should have.  But if the abort was not in UNBLOCK_INPUT, then I
> don't understand the backtrace you posted: where else is the call to
> `abort', if not inside UNBLOCK_INPUT?

If you're talking about this crash:

Breakpoint 1, w32_abort () at w32fns.c:7182
7182      button = MessageBox (NULL,
(gdb) bt
#0  w32_abort () at w32fns.c:7182
#1  0x0103a942 in xfree (block=0x32d4f80) at alloc.c:713
#2  0x01004b8d in pop_kboard () at keyboard.c:923
[etc]

yes, it happens in UNBLOCK_INPUT, and at this moment I wasn't using
watchpoints. But in this one

Breakpoint 1, w32_abort () at w32fns.c:7182
7182      button = MessageBox (NULL,
(gdb) bt
#0  w32_abort () at w32fns.c:7182
#1  0x011d4c94 in Fframe_first_window (frame_or_window=56209413) at window.c:249
#2  0x0110457b in choose_minibuf_frame () at minibuf.c:133
#3  0x011045e3 in choose_minibuf_frame_1 (ignore=53151770) at minibuf.c:140
#4  0x01039a41 in unbind_to (count=27, value=53151770) at eval.c:3437
#5  0x010334d9 in unwind_to_catch (catch=0x88e450, value=53436670) at
eval.c:1290
#6  0x0103403a in Fsignal (error_symbol=53209954, data=53151770) at eval.c:1748
#7  0x010340ed in xsignal (error_symbol=53209954, data=53151770) at eval.c:1769
#8  0x0103410c in xsignal0 (error_symbol=53209954) at eval.c:1778
#9  0x0126224e in text_read_only (propval=53151794) at textprop.c:92
#10 0x01269a74 in verify_interval_modification (buf=0x35b1800,
start=1, end=114) at textprop.c:2157
#11 0x011121f3 in prepare_to_modify_buffer (start=1, end=114,
preserve_ptr=0x7481f83c) at insdel.c:1851
#12 0x011117c1 in del_range_1 (from=1, to=114, prepare=1,
ret_string=0) at insdel.c:1601
#13 0x0111174a in del_range (from=1, to=114) at insdel.c:1576
#14 0x010bfc20 in Ferase_buffer () at buffer.c:1950
#15 0x011064c8 in read_minibuf_unwind (data=53151770) at minibuf.c:864
#16 0x01039a41 in unbind_to (count=27, value=53151770) at eval.c:3437
#17 0x010334d9 in unwind_to_catch (catch=0x88d9f0, value=53151794) at
eval.c:1290
#18 0x01033577 in Fthrow (tag=56259586, value=53151794) at eval.c:1328
#19 0x0122260d in signal_user_input () at w32fns.c:2482
#20 0x012226aa in post_character_message (hwnd=0x6c035c, msg=258,
wParam=117, lParam=1441793, modifiers=0) at w32fns.c:2542
#21 0x012236eb in w32_wnd_proc (hwnd=0x6c035c, msg=258, wParam=117,
lParam=1441793) at w32fns.c:2913
#22 0x767162fa in USER32!OffsetRect () from C:\Windows\syswow64\user32.dll
#23 0x006c035c in ?? ()
#24 0x00000102 in ?? ()
#25 0x00000075 in ?? ()
#26 0x00160001 in ?? ()
#27 0x012226d3 in post_character_message (hwnd=0x12226d3, msg=7078748,
wParam=258, lParam=117, modifiers=1441793) at w32fns.c:2546
#28 0x76716d3a in USER32!IsWindow () from C:\Windows\syswow64\user32.dll
#29 0x012226d3 in post_character_message (hwnd=0x0, msg=19015379,
wParam=7078748, lParam=258, modifiers=117) at w32fns.c:2546
#30 0x767177c4 in USER32!AnyPopup () from C:\Windows\syswow64\user32.dll
#31 0x00000000 in ?? ()

where I did have the interrupt_input_blocked watchpoint set, how do
you know that it was inside UNBLOCK_INPUT?

    Juanma