From: Eli Zaretskii <eliz@gnu.org>
To: Phil Muldoon <pmuldoon@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [patch][python] Add breakpoint support.
Date: Mon, 29 Mar 2010 14:28:00 -0000 [thread overview]
Message-ID: <83k4sv19wm.fsf@gnu.org> (raw)
In-Reply-To: <4BB0B063.6000600@redhat.com>
> Date: Mon, 29 Mar 2010 14:51:31 +0100
> From: Phil Muldoon <pmuldoon@redhat.com>
>
> This patch ports the Python breakpoint work found in
> archer-tromey-python in the Archer git repository. In addition to
> the port, this patch adds watchpoint support and several other
> bug-fixes and clean-ups not found in the archer repository. It also
> adds a testsuite for breakpoints. Ok?
Thanks. I have a few comments to the documentation part.
> * breakpoint.c (condition_command): Simplify. Move condition
> setting code too ...
^^^
A typo.
> +@tindex gdb.Breakpoint
> +@tindex Breakpoint
You already added index entries with the same names, albeit in
different letter-case, elsewhere in the manual. Why is it a good idea
to have these here as well?
> +Create a new breakpoint. @var{expression} is a string naming the
> +location of the breakpoint, or an expression that defines a
> +watchpoint.
This sounds like the watchpoint expression is not a string. Also, I
wouldn't use "expression" here, since it isn't in the case of a
breakpoint. How about this variant:
@defmethod Breakpoint __init__ spec @r{[}type@r{]} @r{[}wp_class@r{]}
...
@var{spec} specifies the location of a breakpoint or the expression
to watch for a watchpoint.
> +either: @var{BP_BREAKPOINT} or @var{BP_WATCHPOINT}. If
BP_BREAKPOINT and BP_WATCHPOINT should be in @code, not in @var. They
stand for themselves, not for something else (contrast with your
@var{expression} above).
> +If no type is provided, it is presumed to be @var{BP_BREAKPOINT}.
"@var{type} defaults to @code{BP_BREAKPOINT}." is much shorter and
more clear, I think.
> +The optional @var{wp_class} argument defines the type of watchpoint to
^^^^
Since you call it "wp_class", why not use "class" here instead of
"type"? You already have @var{type} that has a different role.
> +create, if @var{type} is defined as @var{BP_WATCHPOINT}. If a
^^
Two spaces, please (here and elsewhere).
> +If a watchpoint type is not provided, it is assumed to be a @var{WP_READ}
> +type.
?? Really? WP_WRITE sounds a more logical choice, as it's the default
watchpoint type in GDB.
> +@defmethod Breakpoint is_valid
> +Return @code{True} if this @code{Breakpoint} object is valid,
> +@code{False} otherwise. A @code{Breakpoint} object can become invalid
> +if the user deletes the breakpoint. In this case, the object still
> +exists, but the underlying breakpoint does not.
What if execution leaves the scope in which the watchpoint is defined:
does this make it invalid?
> +This attribute holds the breakpoint's number -- the identifier used by
^^
3 dashes in a row here, please.
> +This attribute holds the breakpoint's type -- the identifier used to
Ditto.
> +@findex BP_READ_WATCHPOINT
> +@findex gdb.BP_READ_WATCHPOINT
> +@item BP_READ_WATCHPOINT
> +Hardware assisted read watchpoint.
> +
> +@findex BP_ACCESS_WATCHPOINT
> +@findex gdb.BP_ACCESS_WATCHPOINT
> +@item BP_ACCESS_WATCHPOINT
> +Hardware assisted access watchpoint.
> +@end table
If we have these BP_* constants, why do we also need the WP_*
constants (and the wp_class argument)?
> +@defivar Breakpoint location
> +This attribute holds the location of the breakpoint, as specified by
> +the user. It is a string. If the breakpoint does not have a location
> +(that is, it is a watchpoint) an exception will be raised.
Is it wise to raise an exception? Why not return something sensible
instead?
> +the user. It is a string. If the breakpoint does not have an
> +expression (the breakpoint is not a watchpoint) an exception will be
> +raised.
Same here.
> +@defivar Breakpoint commands
> +This attribute holds the commands attached to the breakpoint. If
> +there are commands, this returns a string holding all the commands,
^^^^^^^^^^^^
An attribute cannot "return" anything, it holds a value, right?
Thanks.
next prev parent reply other threads:[~2010-03-29 14:28 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-29 13:52 Phil Muldoon
2010-03-29 14:28 ` Eli Zaretskii [this message]
2010-03-29 14:53 ` Phil Muldoon
2010-03-29 15:15 ` Eli Zaretskii
2010-04-05 16:27 ` Joel Brobecker
2010-04-06 13:47 ` Phil Muldoon
2010-04-06 18:21 ` Eli Zaretskii
2010-04-07 21:09 ` Tom Tromey
2010-04-08 12:42 ` Phil Muldoon
2010-04-08 15:29 ` Joel Brobecker
2010-04-08 19:48 ` Phil Muldoon
2010-04-08 20:41 ` Tom Tromey
2010-04-08 21:27 ` Phil Muldoon
2010-04-08 21:45 ` Joel Brobecker
2010-04-08 22:21 ` Pedro Alves
2010-04-08 23:26 ` Joel Brobecker
2010-04-08 23:40 ` Pedro Alves
2010-04-09 15:35 ` Tom Tromey
2010-04-09 15:32 ` Tom Tromey
2010-04-08 19:57 ` Tom Tromey
2010-04-09 10:11 ` Phil Muldoon
2010-04-07 21:19 ` Joel Brobecker
2010-06-11 17:41 ` Ulrich Weigand
2010-06-11 20:28 ` Phil Muldoon
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=83k4sv19wm.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