MI *stopped versus silent breakpoint

Marc Khouzam marc.khouzam@ericsson.com
Tue Feb 3 11:49:00 GMT 2009


if you look at your example output below,
there is two *stopped events and two *running events,
although you only issued one reverse-finish.

From a user perspective, there should be one *stopped
and one *running.  So, for the frontend, multiple
events are not exact; but the frontend can be made
smart enough to ignore them.


-----Original Message-----
From: teawater [mailto:teawater@gmail.com]
Sent: Tue 2/3/2009 12:36 AM
To: Marc Khouzam
Cc: gdb@sourceware.org
Subject: Re: MI *stopped versus silent breakpoint
Hi Marc,

When I try reverse-debug with MI what I got is:
~"Run back to call of #0  cool () at 1.c:15\n"
~"main () at 1.c:25\n"
~"25\t       b = cool ();\n"

Could you give me some example about what you talk about ?


On Wed, Jan 21, 2009 at 23:41, Marc Khouzam <marc.khouzam@ericsson.com> wrote:
> Hi,
> I just found out that a breakpoint can be made silent, in which case
> there
> is no breakpoint output when it is hit.  When doing a reverse-finish
> operation, a silent breakpoint is used, and when hit the inferior is
> resumed
> automatically, and then a single-step is done.
> In CLI, it makes it look like the inferior stopped only once, instead of
> twice.
> In MI though, with the *stopped events, we do get an empty
> *stopped for the silent breakpoint.  So I see two *stopped events
> consecutively.
> I wondered if a silent breakpoint should in fact generate a *stopped
> event
> or not?  For a frontend, it can be confusing to see two stopped events.
> FYI, what I did for DSF-GDB and reverse debugging, is to ignore empty
> *stopped.
> I stilled wondered about GDB though.
> Marc

More information about the Gdb mailing list