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

From: Eli Zaretskii <[email-masked]>
Date: Fri, 15 Jul 2011 18:24:03 +0300

> From: Juanma Barranquero <[email-masked]>
> Date: Fri, 15 Jul 2011 17:12:41 +0200
> Cc: [email-masked]
> 
> On Fri, Jul 15, 2011 at 14:29, Eli Zaretskii <[email-masked]> wrote:
> 
> > Could you perhaps repeat the recipe after setting a watchpoint on the
> > variable interrupt_input_blocked, with commands like this:
> >
> >  p interrupt_input_blocked
> >  bt 5
> >  continue
> 
> I'm sorry, I think you'll have to downgrade your expectations about my
> GDB-foo and explain things more slowly and with easy words ;-)

Compliance!

 whatever> gdb ./oo/i386/emacs.exe
 (gdb) watch interrupt_input_blocked
 (gdb) commands
  >p interrupt_input_blocked
  >bt 5
  >continue
  >end
 (gdb) run ....

Now each time interrupt_input_blocked will change its value, GDB will
kick in, perform the named "commands", and let Emacs continue.  Do
whatever you need to reproduce the crash, then look at what GDB
printed, and see if the increments/decrements of this variable come in
pairs, as they should, or not.  Note that they could be nested, so
just 2 increments in a row are okay if there are 2 decrements in a row
after that.

See the definitions of BLOCK_INPUT and UNBLOCK_INPUT, for more
insight.