Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: "Marc Khouzam" <marc.khouzam@ericsson.com>
To: "Vladimir Prus" <vladimir@codesourcery.com>, <gdb@sources.redhat.com>
Subject: RE:  Re: MI *stopped versus silent breakpoint
Date: Thu, 05 Feb 2009 22:30:00 -0000	[thread overview]
Message-ID: <6D19CA8D71C89C43A057926FE0D4ADAA04E1BF6C@ecamlmw720.eamcs.ericsson.se> (raw)
In-Reply-To: <gmebrn$ptm$1@ger.gmane.org>

Hi,

I'm curious as to the motivation behind silent breakpoints.
I'm trying to understand why a frontend would need to know
of a silent bp hit, but not a user?
For instance, in async mode, if a silent bp is used,
how would the user ever know it is hit?  And if the user
need not know, why would a frontend?

I do see that a frontend would probably 'hang' if it thought
the inferior was running when it wasn't.  However, if silent
bp are aimed at allowing GDB to resume execution without
it being visible to the user/frontend, then we may want to
re-think the *stopped event in that case.

Again, I fixed it for Eclipse, so this is more of a question
towards improving GDB, if needed.

Thanks


-----Original Message-----
From: gdb-owner@sourceware.org on behalf of Vladimir Prus
Sent: Thu 2/5/2009 4:35 AM
To: gdb@sources.redhat.com
Subject:  Re: MI *stopped versus silent breakpoint
 
teawater wrote:

> On Thu, Feb 5, 2009 at 17:25, Vladimir Prus <vladimir@codesourcery.com> wrote:
>> On Thursday 05 February 2009 11:09:56 teawater wrote:
>>> Hi Marc,
>>>
>>> I read the source code in infcmd.c:finish_backward.
>>> This is because function "proceed" will be call twice in
>>> "finish_backward". Maybe MI output depend some
>>> observer_notify_target_xxx function. So it output twice.
>>
>> The *stopped notification is output as result of call to
>>
>>        observer_notify_normal_stop
>>
>> which is done in infrun.c:normal_stop. I do believe that "silent" breakpoint
>> should generate *stopped, since otherwise frontend will assume the target is
>> running. Furthermore, I believe that silent breakpoints, in MI, should behave
>> identically to ordinary breakpoints -- as it stands, we print *stopped without
>> frame information.
>>
>>
>> I don't know why a silent breakpoint is used in implementation of reverse-finish,
>> nor do I understand why normal_stop is called in the middle of reverse-finish when
>> stopping on that temporary breakpoint. I think the first fix it to make reverse-finish
>> not to call normal_stop on that internal breakpoint (just like normal_stop is not
>> called on solib load breakpoint).
> 
> The normal_stop is called twice in reverse-finish because
> finish_backward call "proceed" twice, "proceed" call normal_stop.

Then I presume you get to change that. I don't see any way we can overload
'silent' breakpoint to output something in most cases, except for reverse-finish.
And if you are going to add some flag to indicate breakpoints used for single-step,
you might as well change handle_inferiour_event to do extra reverse step when such
breakpoint is hit.

- Volodya



  parent reply	other threads:[~2009-02-05 22:30 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-21 15:41 Marc Khouzam
2009-02-03  5:36 ` teawater
2009-02-03 11:49   ` Marc Khouzam
2009-02-05  8:10     ` teawater
2009-02-05  9:25       ` Vladimir Prus
2009-02-05  9:30         ` teawater
2009-02-05  9:35           ` Vladimir Prus
2009-02-05 15:43             ` teawater
2009-02-05 22:30             ` Marc Khouzam [this message]
2009-02-05 22:42               ` Daniel Jacobowitz
2009-02-05 23:25                 ` Marc Khouzam
2009-02-06  2:30                   ` Daniel Jacobowitz
2009-02-06  3:30                   ` teawater
2009-02-06  7:48                     ` Marc Khouzam
2009-02-06 10:42                       ` Vladimir Prus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6D19CA8D71C89C43A057926FE0D4ADAA04E1BF6C@ecamlmw720.eamcs.ericsson.se \
    --to=marc.khouzam@ericsson.com \
    --cc=gdb@sources.redhat.com \
    --cc=vladimir@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox