Re: [patch][python] Add symbol, symbol table and frame block support to GDB API

Eli Zaretskii
2010-02-02T20:14:31Z

> Date: Tue, 02 Feb 2010 10:24:24 +0000
> From: Phil Muldoon <pmuldoon@redhat.com>
> CC: gdb-patches ml <gdb-patches@sourceware.org>
>
> >> +All of the name-scope contours of a program are represented as 'block'
> >
> > What are "contours"? Is this a widespread enough terminology to be
> > understood without defining it first? If not, I suggest to define it.
>
>
> I really agonized over the whole block description, as there is no (as
> far as I know) analogue to the GDB CLI for blocks. It's revealing an
> API that GDB uses to manipulate blocks in a frame. I could use some
> help making this more palatable enough to the consumer of the API,
> over trying to teach the user compiler/runtime semantics (which is not
> the purpose of the GDB manual). What do you think?

How about if you tell what you want in the most technical way you
think about these issues, disregarding the fact that it's for GDB
users, and I will then rephrase it to be palatable to mere mortals?

> >> +@value{GDBN} represents the name of every variable, function and type
> >> +as a symbol (@pxref{Symbols, ,Examining the Symbol Table}).
> >
> > I think, from the GDB user POV, a name of a variable, function, and
> > type is just a string, not a symbol.
>
> But in the context of the Python API, they are represented as symbols? How should I word this?

How about

@value{GDBN} represents every variable, function and type as a an
entry in a symbol table.

> >> +@item SYMBOL_LOC_REF_ARG
> >> +Value address is an offset in arglist.
> >
> > I couldn't understand what this means.
>
>
> Yeah, this is a concept expressed in the comments of the code.

Where? I don't see it in the patch you submitted.

> > Do we need a NEWS entry for this?
>
> Not sure. From my point of view I am merging code from Archer to FSF
> GDB. I'll happily write one up if you think we need one? What do you
> think?

Something like

The GDB Python API now has access to symbols, symbol tables, and
frame's code blocks.

Thanks.