[RFA] Make mi_cmd_break_insert exception-safe.

Vladimir Prus vladimir@codesourcery.com
Fri Feb 1 06:54:00 GMT 2008


On Friday 01 February 2008 01:16:53 Daniel Jacobowitz wrote:
> On Sun, Jan 27, 2008 at 05:15:07PM +0300, Vladimir Prus wrote:
> > The gdb_breakpoint function, as I understand it, was supposed to be part of
> > libgdb interface, defined in gdb.h header. However, libgdb is not even close to
> > being usable, and when I've asked about using gdb as a library some time ago, the
> > response was that it's too hard to do, and it's no longer a goal. Therefore,
> > I think it makes no sense to keep gdb_breakpoint non-throwing.
> 
> There is a convention that the gdb_* functions don't throw, though.
> It's very confusing what does and does not throw in GDB.  Before this
> patch, did gdb_breakpoint actually throw? If so, would fixing it 
> by using try/catch inside gdb_breakpoint fix this bug too?

Putting try/catch inside gdb_breakpoint can possibly fix this bug.
However, right now gdb_breakpoint is used in a single place -- 
in mi_cmd_break_insert. If gdb_breakpoint throws, mi_cmd_break_insert is
capable of reporting this error property -- because top-level MI code
will handle the exception already.

So, why bother trying to make gdb_breakpoint non-throwing? I believe
any such change will be at least as complex as making mi_cmd_break_insert
exception-safe? If your concern is about gdb_ prefix, how about renaming
gdb_exception into 'set_breakpoint'?

- Volodya



More information about the Gdb-patches mailing list