This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] Make mi_cmd_break_insert exception-safe.
- From: Vladimir Prus <vladimir at codesourcery dot com>
- To: gdb-patches at sources dot redhat dot com
- Cc: Daniel Jacobowitz <dan at codesourcery dot com>
- Date: Fri, 1 Feb 2008 09:53:46 +0300
- Subject: Re: [RFA] Make mi_cmd_break_insert exception-safe.
- References: <200801271715.08542.vladimir@codesourcery.com> <20080131221653.GB6715@caradoc.them.org>
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