* stabs.texinfo: Move stuff on @ and # type descriptors from node
Cplusplus to new nodes Member Type Descriptor and Method Type Descriptor. Re-write stuff for #.
This commit is contained in:
parent
0a64709eb4
commit
2b7ac6fdb0
2 changed files with 49 additions and 28 deletions
|
@ -1,3 +1,9 @@
|
|||
Wed Mar 23 07:16:36 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||
|
||||
* stabs.texinfo: Move stuff on @ and # type descriptors from node
|
||||
Cplusplus to new nodes Member Type Descriptor and Method Type
|
||||
Descriptor. Re-write stuff for #.
|
||||
|
||||
Wed Mar 16 08:20:19 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||
|
||||
* gdb.texinfo (Print Settings): Don't document "set print
|
||||
|
|
|
@ -2313,6 +2313,8 @@ Symnum n_type n_othr n_desc n_value n_strx String
|
|||
* Simple Classes::
|
||||
* Class Instance::
|
||||
* Methods:: Method definition
|
||||
* Method Type Descriptor:: The @samp{#} type descriptor
|
||||
* Member Type Descriptor:: The @samp{@@} type descriptor
|
||||
* Protections::
|
||||
* Method Modifiers::
|
||||
* Virtual Methods::
|
||||
|
@ -2321,25 +2323,6 @@ Symnum n_type n_othr n_desc n_value n_strx String
|
|||
* Static Members::
|
||||
@end menu
|
||||
|
||||
Type descriptors added for C++ descriptions:
|
||||
|
||||
@table @code
|
||||
@item #
|
||||
method type (@code{##} if minimal debug)
|
||||
|
||||
@item @@
|
||||
Member (class and variable) type. It is followed by type information
|
||||
for the offset basetype, a comma, and type information for the type of
|
||||
the field being pointed to. (FIXME: this is acknowledged to be
|
||||
gibberish. Can anyone say what really goes here?).
|
||||
|
||||
Note that there is a conflict between this and type attributes
|
||||
(@pxref{String Field}); both use type descriptor @samp{@@}.
|
||||
Fortunately, the @samp{@@} type descriptor used in this C++ sense always
|
||||
will be followed by a digit, @samp{(}, or @samp{-}, and type attributes
|
||||
never start with those things.
|
||||
@end table
|
||||
|
||||
@node Class Names
|
||||
@section C++ Class Names
|
||||
|
||||
|
@ -2483,12 +2466,11 @@ method.
|
|||
|
||||
When the field name is a method name it is followed by two colons rather
|
||||
than one. This is followed by a new type definition for the method.
|
||||
This is a number followed by an equal sign and the type descriptor
|
||||
@samp{#}, indicating a method type, and a second @samp{#}, indicating
|
||||
that this is the @dfn{minimal} type of method definition used by GCC2,
|
||||
not larger method definitions used by earlier versions of GCC. This is
|
||||
followed by a type reference showing the return type of the method and a
|
||||
semi-colon.
|
||||
This is a number followed by an equal sign and the type of the method.
|
||||
Normally this will be a type declared using the @samp{#} type
|
||||
descriptor; see @ref{Method Type Descriptor}; static member functions
|
||||
are declared using the @samp{f} type descriptor instead; see
|
||||
@ref{Function Types}.
|
||||
|
||||
The format of an overloaded operator method name differs from that of
|
||||
other methods. It is @samp{op$::@var{operator-name}.} where
|
||||
|
@ -2625,6 +2607,39 @@ pointer.
|
|||
|
||||
<< The examples that follow are based on A1.C >>
|
||||
|
||||
@node Method Type Descriptor
|
||||
@section The @samp{#} Type Descriptor
|
||||
|
||||
This is like the @samp{f} type descriptor for functions (@pxref{Function
|
||||
Types}), except that a function which uses the @samp{#} type descriptor
|
||||
takes an extra argument as its first argument, for the @code{this}
|
||||
pointer. The @samp{#} type descriptor is optionally followed by the
|
||||
types of the arguments, then another @samp{#}. If the types of the
|
||||
arguments are omitted, so that the second @samp{#} immediately follows
|
||||
the @samp{#} which is the type descriptor, the arguments are being
|
||||
omitted (to save space) and can be deduced from the mangled name of the
|
||||
method. After the second @samp{#} there is type information for the
|
||||
return type of the method and a semicolon.
|
||||
|
||||
Note that although such a type will normally be used to describe fields
|
||||
in structures, unions, or classes, for at least some versions of the
|
||||
compiler it can also be used in other contexts.
|
||||
|
||||
@node Member Type Descriptor
|
||||
@section The @samp{@@} Type Descriptor
|
||||
|
||||
The @samp{@@} type descriptor is for a member (class and variable) type.
|
||||
It is followed by type information for the offset basetype, a comma, and
|
||||
type information for the type of the field being pointed to. (FIXME:
|
||||
this is acknowledged to be gibberish. Can anyone say what really goes
|
||||
here?).
|
||||
|
||||
Note that there is a conflict between this and type attributes
|
||||
(@pxref{String Field}); both use type descriptor @samp{@@}.
|
||||
Fortunately, the @samp{@@} type descriptor used in this C++ sense always
|
||||
will be followed by a digit, @samp{(}, or @samp{-}, and type attributes
|
||||
never start with those things.
|
||||
|
||||
@node Protections
|
||||
@section Protections
|
||||
|
||||
|
@ -3384,7 +3399,7 @@ Type reference; see @ref{String Field}.
|
|||
Reference to builtin type; see @ref{Negative Type Numbers}.
|
||||
|
||||
@item #
|
||||
Method (C++); see @ref{Cplusplus}.
|
||||
Method (C++); see @ref{Method Type Descriptor}.
|
||||
|
||||
@item *
|
||||
Pointer; see @ref{Miscellaneous Types}.
|
||||
|
@ -3394,7 +3409,7 @@ Reference (C++).
|
|||
|
||||
@item @@
|
||||
Type Attributes (AIX); see @ref{String Field}. Member (class and variable)
|
||||
type (GNU C++); see @ref{Cplusplus}.
|
||||
type (GNU C++); see @ref{Member Type Descriptor}.
|
||||
|
||||
@item a
|
||||
Array; see @ref{Arrays}.
|
||||
|
@ -3526,7 +3541,7 @@ The third line is the stab format with the significant stab fields
|
|||
named and the rest NIL.
|
||||
|
||||
Subsequent lines expand upon the meaning and possible values for each
|
||||
significant stab field. @samp{#} stands in for the type descriptor.
|
||||
significant stab field.
|
||||
|
||||
Finally, any further information.
|
||||
|
||||
|
|
Loading…
Reference in a new issue