This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Python pretty-printing [3/6]
- From: Eli Zaretskii <eliz at gnu dot org>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Fri, 03 Apr 2009 18:14:12 +0300
- Subject: Re: Python pretty-printing [3/6]
- References: <m3bprebws2.fsf@fleche.redhat.com>
- Reply-to: Eli Zaretskii <eliz at gnu dot org>
> From: Tom Tromey <tromey@redhat.com>
> Date: Thu, 02 Apr 2009 14:55:41 -0600
>
> 2009-04-01 Thiago Jung Bauermann <bauerman@br.ibm.com>
> Tom Tromey <tromey@redhat.com>
>
> * gdb.texinfo (Types From Inferior): New node.
> (Python API): Update.
Thanks. Comments:
> +@node Types From Inferior
> +@subsubsection Types From Inferior
Some @cindex entry here would be good.
> The base types of C++ classes are also
Please use "C@t{++}", it looks better in print.
> +@item bitpos
> +This attribute is not available for @code{static} fields. For
> +non-@code{static} fields, the value is the bit position of the field.
What are "static fields"? Should that be explained here?
> +@item type
> +The type of the field. This is usually an instance of @code{Type},
> +but it can be @code{None} in some situations.
Should we tell what are those situations where you get "None", or at
least give an example or two?
> +@defmethod Type tag
> +Return the tag name for this type. The tag name is the name after
> +@code{struct}, @code{union}, or @code{enum} in C; not all languages
> +have this concept.
Should we talk about more than just C? (I assume that at least one
more language has some of these tag names.)
> +For a pointer type, the target type is the type of the pointed-to
> +object. For an array type, the target type is the type of the
> +elements of the array. For a function type, the target type is the
> +type of the return value. For a complex type, the target type is the
> +type of the elements. For a typedef, the target type is the aliased
> +type.
Again, this sounds specific to C and C++; isn't there something useful
we can tell for other languages, like Ada or Pascal or Java?
> +@defmethod Type template_argument n
> +If this @code{gdb.Type} is a template type, this will return a new
> +@code{gdb.Type} which represents the type of the @var{n}th template
> +argument.
Is this C++-specific? If so, what will happen in other languages?
> +@item TYPE_CODE_METHOD
> +A C++ method type.
Would it make sense to call it TYPE_CODE_CPP_METHOD, to make more
clear that it's C++-specific (is it?)? Likewise for other
C++-specific constants described below.