From: Phil Muldoon <pmuldoon@redhat.com>
To: Siva Chandra <sivachandra@google.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFC - Python scripting] New methods Symtab.global_block and Symtab.static_block (docs included)
Date: Tue, 17 Apr 2012 13:00:00 -0000 [thread overview]
Message-ID: <4F8D6779.8090906@redhat.com> (raw)
In-Reply-To: <CAGyQ6gyuJ1oYBH3O5gzNc7Y7NK7AGC2F9a8Z3ts4dMm0GpVy0g@mail.gmail.com>
On 04/17/2012 08:25 AM, Siva Chandra wrote:
> The attached patch is a result of discussions here:
> http://sourceware.org/ml/gdb-patches/2012-04/msg00226.html
> and here:
> http://sourceware.org/ml/gdb-patches/2012-04/msg00302.html
Thanks, a few comments.
We already have gdb.Block.is_static and gdb.Block.is_global. I don't
have an objection to this patch per-se, but wouldn't the user acquire
the global/static blocks similarly by iterating the blocks in the
Python code and doing the above tests?
> Code:
> 2012-04-17 Siva Chandra Reddy <sivachandra@google.com>
>
> Add two new methods global_block and static_block to gdb.Symtab
> objects.
I don't think GNU Style ChangeLogs allow for a summary line. I don't
have an issue with it, but, check with maintainers. Just a nit.
> * NEWS (Python scripting): Add entry about the new methods.
> * python/py-symtab.c (stpy_global_block): New function which
> implements the gdb.Symtab.global_block() method.
> (stpy_static_block): New function which implements the
> gdb.Symtab.static_block() method.
> (symtab_object_methods): Add entries for the two new methods.
>
> Testsuite:
> 2012-04-17 Siva Chandra Reddy <sivachandra@google.com>
>
> * py-symbol.exp: Add tests to test the new methods
> gdb.Symtab.global_block() and gdb.Symtab.static_block().
> * py-symbol.c: Add new struct to help test
> gdb.Symtab.static_block().
gdb.python/ prefix to filenames here.
> Docs:
> 2012-04-17 Siva Chandra Reddy <sivachandra@google.com>
>
> * gdb.texinfo (Symbol Tables In Python): Add documentation about
> the new methods global_block and static_block on gdb.Symtab
> objects.
>
> Thanks,
> Siva Chandra
> +@defun Symtab.global_block ()
> +Return the global block of the underlying symbol table. Note that,
> +though highly unlikely, the returned @code{gdb.Block} objects are not
> +guaranteed to be identical across different @value{GDBN} releases.
> +@end defun
In what sense not identical? I know Doug brought this up, and it is
fair point. But if I was a Python scripting author it would make me nervous
and distrustful of this API.
It might also break our API promise, depending on how one looks at it.
What might change? I think mitigation here could be achieved through a
more thorough explanation? Doug would have to expand on what he thinks
might change. As it is, this patch makes me a little nervous of
the whole block API in general.
> +@defun Symtab.static_block ()
> +Return the static block of the underlying symbol table. Note that,
> +though highly unlikely, the returned @code{gdb.Block} objects are not
> +guaranteed to be identical across different @value{GDBN} releases.
> +@end defun
Ditto above.
> +static PyObject *
> +stpy_global_block (PyObject *self, PyObject *args)
> +{
> + struct symtab *symtab = NULL;
> > + struct block *block = NULL;
> +
> + STPY_REQUIRE_VALID (self, symtab);
> +
> + block = symtab->blockvector->block[GLOBAL_BLOCK];
> + return block_to_block_object (block, symtab->objfile);
I don't think so, but can block ever be NULL here? Looking at the
code, I'm not even sure if it would matter as set_block just stores a
reference to the passed block. However, blpy_get_superblock has a
NULL block check, so it might be worthwhile checking it out.
> + block = symtab->blockvector->block[STATIC_BLOCK];
> + return block_to_block_object (block, symtab->objfile);
Same as above.
> Index: testsuite/gdb.python/py-symbol.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-symbol.c,v
>
> retrieving revision 1.5
> diff -u -p -r1.5 py-symbol.c
> Index: testsuite/gdb.python/py-symtab.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-symtab.exp,v
> retrieving revision 1.8
> diff -u -p -r1.8 py-symtab.exp
I don't want you to fix this as it is unrelated to your patch, but
.exp files should have their own test inferior. Something I noted so
I remember to fix it!
Cheers,
Phil
next prev parent reply other threads:[~2012-04-17 12:52 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-17 8:39 Siva Chandra
2012-04-17 13:00 ` Phil Muldoon [this message]
2012-04-17 17:34 ` Siva Chandra
2012-04-17 17:44 ` Tom Tromey
2012-04-17 17:41 ` Tom Tromey
2012-04-17 17:05 ` Eli Zaretskii
[not found] ` <CAGyQ6gxxEeYeCKw_iHXh74Gg223GHxMoW=gvt9kU+ax396kKBQ@mail.gmail.com>
2012-04-18 9:15 ` Siva Chandra
2012-04-18 20:45 ` Phil Muldoon
2012-04-18 20:48 ` Tom Tromey
2012-04-19 17:33 ` Siva Chandra
2012-04-19 19:18 ` Doug Evans
2012-04-20 6:48 ` Siva Chandra
2012-04-20 12:12 ` Matt Rice
2012-04-20 14:16 ` Doug Evans
2012-04-20 15:21 ` Matt Rice
2012-04-20 19:12 ` Tom Tromey
2012-04-20 19:53 ` Doug Evans
2012-04-20 19:57 ` Siva Chandra
2012-04-23 13:21 ` Tom Tromey
2012-04-23 13:35 ` Phil Muldoon
2012-04-23 14:11 ` Eli Zaretskii
2012-04-23 14:45 ` Phil Muldoon
2012-04-23 16:00 ` Eli Zaretskii
2012-04-24 11:15 ` Siva Chandra
2012-04-24 17:40 ` Eli Zaretskii
2012-04-25 7:11 ` Tom Tromey
2012-04-25 8:19 ` Siva Chandra
2012-04-26 12:35 ` Siva Chandra
2012-04-26 15:21 ` Doug Evans
2012-05-02 17:41 ` Siva Chandra
2012-05-02 18:15 ` Doug Evans
2012-05-03 7:13 ` Siva Chandra
2012-05-04 18:05 ` FAILing new testcase for -fdebug-types-section [Re: [RFC - Python scripting] New methods Symtab.global_block and Symtab.static_block (docs included)] Jan Kratochvil
2012-05-05 7:01 ` Siva Chandra
2012-05-05 7:05 ` Jan Kratochvil
2012-05-05 7:11 ` Siva Chandra
2012-05-05 7:13 ` Jan Kratochvil
2012-05-23 21:38 ` [patch KFAIL] Re: FAILing new testcase for -fdebug-types-section (PR symtab/14148) Jan Kratochvil
2012-04-18 20:48 ` [RFC - Python scripting] New methods Symtab.global_block and Symtab.static_block (docs included) Tom Tromey
2012-04-20 8:13 ` Eli Zaretskii
2012-04-17 17:37 ` Tom Tromey
2012-04-18 18:41 ` Tom Tromey
2012-04-18 19:53 ` Siva Chandra
2012-04-18 20:49 ` 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=4F8D6779.8090906@redhat.com \
--to=pmuldoon@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=sivachandra@google.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