[MI] changing breakpoint location (Was: GDB Focus Group at the 2008 GCC Summit)

Vladimir Prus
2008-06-25T06:56:39Z

Nick Roberts wrote:

> Nick Roberts writes:
> > > The IDE is responsible for removing & reinserting breakpoints at the
> > > correct line numbers. If you had a breakpoint on main.c:35 and you
> > > added a couple of lines of code earlier in the file, that breakpoint
> > > needs to be moved to main.c:37.
> >
> > Quite apart from fix and continue, it would be useful when GDB realises that
> > an executable has been recompiled and says:
> >
> > `myprog' has changed; re-reading symbols.
> >
> > if it could also compute and print the new breakpoint locations, possibly
> > only in MI as an event notification ("=breakpoints-changed").
>
> I was thinking that GDB could detect that the location had changed but maybe
> (as Jason suggests the IDE should do it (certainly if the edit source in Emacs
> the breakpoint icon moves with it's associated line). In which case it would
> seem useful to have an MI command that could move an existing breakpoint, e.g.,
>
> -break-insert -m BPTNO FILE:LINE
>
> rather than delete the existing breakpoint and create a new one so that the
> breakpoint number is preserved. If the example above is breakpoint 4:
>
> -break-insert -m 4 main.c:37

The frontend logic to remove and reinsert breakpoint when a location changes is
certainly messy, so I guess such a command would be nice to have. Beware that it
would require some core gdb changes -- breakpoint.c does not support
moving breakpoint location, either.

- Volodya