public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: pmuldoon@redhat.com
Cc: gdb-patches@sourceware.org
Subject: Re: [patch] Add an evaluation function hook to Python breakpoints.
Date: Mon, 13 Dec 2010 15:07:00 -0000	[thread overview]
Message-ID: <83zks9hfsz.fsf@gnu.org> (raw)
In-Reply-To: <m3bp4p686y.fsf@redhat.com>

> From: Phil Muldoon <pmuldoon@redhat.com>
> Cc: gdb-patches@sourceware.org
> Date: Mon, 13 Dec 2010 14:47:33 +0000
> 
> +class MyBreakpoint (gdb.Breakpoint):
> +      def evaluate (self):
> +        inf_val = gdb.parse_and_eval("foo")
> +        if inf_val == 3:
> +          return True
> +        return False
> 
> There are two scenarios where the breakpoints would be executed.  The first
> is where you would end up instantiating two instances of the above
> breakpoint at the same location:
> 
> python bp1 = MyBreakPoint("myfile.c:42")
> python bp2 = MyBreakpoint("myfile.c:42", internal=True)

So I would rephrase the text in question like this:

  If this function is defined in a sub-class of @code{gdb.Breakpoint},
  it will be called when the inferior reaches any breakpoint which
  instantiates that sub-class.

Does this describe correctly what will happen?

> >> +                         The @code{evaluate} function should not
> >> +attempt to influence the state of the inferior (e.g., step) or
> >> +otherwise alter its data.  
> >
> > Sounds like a non-trivial limitation; is it really necessary?
> 
> I mentioned it as it was a non-trivial limitation? It is something the user
> should not do in the evaluate function.  The most pressing reason is
> that there may be other breakpoints to be checked at that location so
> the state of the inferior should remain.  The other is it is just bad
> business influencing the inferior position (i.e., stepping) when
> breakpoint evaluation is being performed.

We allow that from the CLI, FWIW.

> This is all well and good, but we cannot prevent the user from doing
> it; just tell them it is very bad idea. ;)

But if there's only one breakpoint at that location, there doesn't
seem to be any reasons to disallow this, right?

Anyway, this is not really related to the manual; if the modified text
above is okay with you, the patch for the manual is approved.

Thanks.

  reply	other threads:[~2010-12-13 15:07 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-13 13:50 Phil Muldoon
2010-12-13 14:19 ` Eli Zaretskii
2010-12-13 14:47   ` Phil Muldoon
2010-12-13 15:07     ` Eli Zaretskii [this message]
2010-12-13 17:21       ` Phil Muldoon
2010-12-13 17:46         ` Eli Zaretskii
2010-12-13 14:33 ` Pedro Alves
2010-12-13 14:56   ` Phil Muldoon
2010-12-13 15:07     ` Pedro Alves
2010-12-13 20:45 ` Doug Evans
2010-12-13 21:02   ` Phil Muldoon
2010-12-14  3:31     ` Doug Evans
2010-12-14 17:18       ` Phil Muldoon
2010-12-14 17:28   ` Tom Tromey
2010-12-14 19:51     ` Phil Muldoon
2010-12-14 20:00       ` Phil Muldoon
2010-12-15 15:34     ` Phil Muldoon
2010-12-15 20:51       ` Tom Tromey
2011-01-27 12:44         ` Phil Muldoon
     [not found]           ` <AANLkTimi6ugruNAqUGHni8Kvkz+B5-s2aAkEoTY2D_gT@mail.gmail.com>
2011-01-27 21:40             ` Phil Muldoon
2011-01-28 10:42           ` Tom Tromey
2010-12-15 16:21     ` Doug Evans
2010-12-15 20:57       ` Tom Tromey
2010-12-21 17:33         ` Doug Evans
2010-12-21 20:02           ` Tom Tromey
2010-12-22 16:34             ` Doug Evans
2010-12-22 17:35               ` Tom Tromey
2010-12-28  5:53                 ` Doug Evans
2011-01-05 18:35                   ` Tom Tromey
2011-01-05 20:23                     ` Phil Muldoon
2011-01-09 20:32                       ` Doug Evans
2010-12-14 17:46   ` Pedro Alves
2010-12-14 16:35 ` Tom Tromey
2010-12-14 17:02   ` Phil Muldoon
2010-12-14 17:48     ` Tom Tromey
2010-12-14 16:42 ` Tom Tromey

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=83zks9hfsz.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=pmuldoon@redhat.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).