From: Phil Muldoon <pmuldoon@redhat.com>
To: Kevin Pouget <kevin.pouget@gmail.com>
Cc: Tom Tromey <tromey@redhat.com>, Eli Zaretskii <eliz@gnu.org>,
gdb-patches@sourceware.org
Subject: Re: [RFC] Python Finish Breakpoints
Date: Mon, 24 Oct 2011 16:27:00 -0000 [thread overview]
Message-ID: <m3hb2y5q8i.fsf@redhat.com> (raw)
In-Reply-To: <CAPftXUL0x7MG8NJtGxqVoEs4Z_D+ipQSnxCMEirQDa1ZPWC8Lw@mail.gmail.com> (Kevin Pouget's message of "Mon, 24 Oct 2011 17:01:45 +0200")
Kevin Pouget <kevin.pouget@gmail.com> writes:
I have some comments regarding the Python bits.
>
> + ** A new class "gdb.FinishBreakpoint" is provided to catch the return
> + of a function. This class is based on the "finish" command
> + available in the CLI.
> +
> ** Type objects for struct and union types now allow access to
> the fields using standard Python dictionary (mapping) methods.
> For example, "some_type['myfield']" now works, as does
> diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
> index ba1b08f..ffd2ef6 100644
> --- a/gdb/breakpoint.c
> +++ b/gdb/breakpoint.c
> @@ -5700,6 +5700,7 @@ init_raw_breakpoint_without_location (struct breakpoint *b,
> b->frame_id = null_frame_id;
> b->condition_not_parsed = 0;
> b->py_bp_object = NULL;
> + b->is_py_finish_bp = 0;
Is there any reason why this need to be in the breakpoint struct? I
think this should be encapsulated in breakpoint PyObject, and a accessor
method provided for it. As a finish breakpoint can only ever be
instantiated by Python, there will always be a py_bp_object attached to
make the call.
> +/* struct implementing the gdb.FinishBreakpoint object by extending
> + the gdb.Breakpoint class. */
> +struct finish_breakpoint_object
> +{
> + /* gdb.Breakpoint base class. */
> + struct breakpoint_object py_bp;
> + /* gdb.Type object of the function finished by this breakpoint. */
> + PyObject *function_type;
> + /* gdb.Type object of the value return by the breakpointed function. */
> + PyObject *return_type;
> + /* When stopped at this FinishBreakpoint, value returned by the function;
> + Py_None if the value is not computable;
> + NULL if GDB is not stopped at a FinishBreakpoint. */
> + PyObject *return_value;
> +};
I think these comments should wrap? They wrap for me in emacs.
Cheers
Phil
next prev parent reply other threads:[~2011-10-24 16:06 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <BANLkTim+YH64zkWvdz2_kVUUj=AJ7v4LKw@mail.gmail.com>
[not found] ` <BANLkTi=gtHzWzXOJzB+a19=jkfk1hGwQBg@mail.gmail.com>
[not found] ` <BANLkTikVdqbMqjguTV8ct0TWiBDhHGYtLg@mail.gmail.com>
2011-05-11 7:44 ` Kevin Pouget
2011-05-11 10:31 ` Phil Muldoon
2011-05-11 11:29 ` Kevin Pouget
2011-05-12 10:38 ` Kevin Pouget
2011-05-12 10:50 ` Phil Muldoon
2011-05-12 11:29 ` Kevin Pouget
[not found] ` <BANLkTi=Eu-5B4YyhP2rGdQXgXbBN-EmLKA@mail.gmail.com>
[not found] ` <BANLkTikt2hEUcXkGVH44NaUcwiF1SGdMaw@mail.gmail.com>
[not found] ` <BANLkTi=UpgogckTD5MZsW+PC5d2F8X-+jA@mail.gmail.com>
[not found] ` <BANLkTi==bj50mZgFKq_qA-+3-2CQA3tBVw@mail.gmail.com>
[not found] ` <BANLkTimmYEmvKT_984jYEVZnA5RGFpEgNw@mail.gmail.com>
2011-05-19 16:21 ` Tom Tromey
2011-05-24 12:51 ` Kevin Pouget
2011-05-27 20:30 ` Tom Tromey
2011-05-30 9:29 ` Kevin Pouget
2011-10-13 14:34 ` Kevin Pouget
2011-10-20 20:12 ` Tom Tromey
2011-10-20 20:58 ` Tom Tromey
2011-10-21 8:15 ` Kevin Pouget
2011-10-24 11:43 ` Kevin Pouget
2011-10-24 13:20 ` Eli Zaretskii
2011-10-24 14:30 ` Kevin Pouget
2011-10-24 17:14 ` Eli Zaretskii
2011-10-24 15:31 ` Kevin Pouget
2011-10-24 16:27 ` Phil Muldoon [this message]
2011-10-25 11:05 ` Kevin Pouget
2011-10-25 11:37 ` Phil Muldoon
2011-10-25 12:22 ` Kevin Pouget
2011-10-28 8:33 ` Kevin Pouget
2011-10-28 20:51 ` Tom Tromey
2011-11-02 14:44 ` Kevin Pouget
2011-11-04 14:25 ` Kevin Pouget
2011-11-04 21:04 ` Tom Tromey
2011-11-09 14:10 ` Kevin Pouget
2011-11-16 10:53 ` Kevin Pouget
2011-11-17 17:49 ` Tom Tromey
2011-11-17 17:48 ` Tom Tromey
[not found] ` <CAPftXUJwtGJhqFyfX6LVK87QH2xeLkvv5kx=yaEnYJMv0YR_rw@mail.gmail.com>
2011-11-24 8:27 ` Kevin Pouget
2011-11-30 16:02 ` Kevin Pouget
2011-12-02 21:49 ` Tom Tromey
2011-12-05 9:29 ` Kevin Pouget
2011-12-06 21:18 ` Tom Tromey
2011-12-07 13:35 ` Kevin Pouget
2011-12-08 15:30 ` Tom Tromey
2011-12-08 16:10 ` Kevin Pouget
2011-12-08 18:08 ` Kevin Pouget
2011-12-09 9:53 ` Kevin Pouget
2011-12-18 19:22 ` Kevin Pouget
2011-12-20 20:55 ` Tom Tromey
2011-12-20 20:58 ` Kevin Pouget
2011-12-21 7:16 ` Joel Brobecker
2011-12-21 17:13 ` Tom Tromey
[not found] ` <CAPftXUKXh9ekZ2kiwQ=5zbrjst+9VH9-eZk8h+Z-9SpQ1WqdLw@mail.gmail.com>
[not found] ` <CAPftXULQFggY3Nz2byC0fMZA1sg4Nymp3hAhe8aSuLNG4cauFg@mail.gmail.com>
[not found] ` <CAPftXUJALHd=-fajVwgowqfCDfXO6JMxSkorWD6CQArsg-PedQ@mail.gmail.com>
[not found] ` <CAPftXULKC8gp3L87+PZEF3dj3crv9bh-uzZpRiYKjqEw_xyptQ@mail.gmail.com>
2011-12-27 4:18 ` Joel Brobecker
2011-12-27 9:40 ` Kevin Pouget
2011-12-27 12:22 ` Joel Brobecker
2011-12-27 9:34 ` Kevin Pouget
2011-12-24 23:56 ` [patch] Fix gdb.python/py-finish-breakpoint.exp new FAIL on x86_64-m32 [Re: [RFC] Python Finish Breakpoints] Jan Kratochvil
2011-12-27 11:13 ` Kevin Pouget
2011-12-27 21:39 ` [commit] " Jan Kratochvil
2012-01-04 17:45 ` Ulrich Weigand
2012-01-04 17:58 ` [commit 7.4] " Jan Kratochvil
2012-01-04 18:10 ` Ulrich Weigand
2011-12-26 11:28 ` [patch] Fix remote.c crash on gdbserver close (+fix py-finish-breakpoint.exp for gdbserver) " Jan Kratochvil
2011-12-27 23:30 ` [patch] Fix remote.c crash on gdbserver close (+fix py-finish-breakpoint.exp for gdbserver) [rediff] Jan Kratochvil
2012-01-02 17:57 ` Tom Tromey
2012-01-02 19:49 ` Pedro Alves
2012-01-19 16:24 ` Call target_close after unpushing, not before (was: Re: [patch] Fix remote.c crash on gdbserver close (+fix py-finish-breakpoint.exp for gdbserver)) Pedro Alves
2012-01-19 16:27 ` Jan Kratochvil
2012-01-19 16:37 ` Call target_close after unpushing, not before Pedro Alves
2012-01-19 16:53 ` [commit] Re: Call target_close after unpushing, not before (was: Re: [patch] Fix remote.c crash on gdbserver close (+fix py-finish-breakpoint.exp for gdbserver)) Jan Kratochvil
2012-01-04 14:49 ` [RFC] Python Finish Breakpoints Ulrich Weigand
2012-01-04 15:24 ` Kevin Pouget
2012-01-04 16:29 ` Ulrich Weigand
2012-01-04 16:42 ` Tom Tromey
2012-01-04 16:40 ` Tom Tromey
2012-01-04 17:13 ` Ulrich Weigand
2012-01-09 9:21 ` Kevin Pouget
2012-01-27 17:01 ` Kevin Pouget
2011-10-28 19:26 ` 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=m3hb2y5q8i.fsf@redhat.com \
--to=pmuldoon@redhat.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=kevin.pouget@gmail.com \
--cc=tromey@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