Subject: Re: bug#22287: 25.1.50; Sudden jumping point in buffer

From: Eli Zaretskii <[email-masked]>
Date: Tue, 05 Jan 2016 22:12:40 +0200

> Date: Tue, 5 Jan 2016 20:51:30 +0100
> From: "Stefan-W. Hahn" <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> > If you tell how you defined the watchpoint, I might be able to help
> > you redefine it so that hardware-assisted watchpoints are used by GDB.
> 
> Any hint welcome.

First, your watchpoints are hardware-assisted, so the problem is a
different one than what I imagined.  Which is good.

Don't use awatch, you only want a watchpoint to trigger when the value
of point actually changes, not when it's being read by some code.  Use
the "watch" command.

Next, I'm guessing that the watchpoint fires all the time, and that's
what slows down Emacs.  One way to make the situation better is to
condition the watchpoint on the value of point (since your previous
tests repeatedly move point from one known position to another known
position).  Like this:

  (gdb) watch -l current_buffer->pt if current_buffer->pt == POS
  (gdb) commands
    > xbacktrace
    > continue
    > end
  (gdb)

where POS is the value of buffer position to which point jumps when it
should have stayed put.

Note that I used "watch -l" (the letter ell) -- this will limit the
watchpoint to watching only point of the buffer that is current when
you type these GDB commands.  You will have to arrange that the
current buffer at that time is the buffer that visits intervals.c.

Let me know if the above is enough to allow you to run a session.

Thanks.