* stabs.texinfo (Parameters): Keep trying to get this right.

This commit is contained in:
Jim Kingdon
1993-04-23 14:51:03 +00:00
parent 7586127f7e
commit a2a2eac845
2 changed files with 26 additions and 27 deletions

View File

@ -1,6 +1,6 @@
Thu Apr 22 16:37:33 1993 K. Richard Pixley (rich@rtl.cygnus.com) Fri Apr 23 07:30:01 1993 Jim Kingdon (kingdon@cygnus.com)
* gdbint.texinfo: document FRAME_SAVED_PC and FRAME_CHAIN. * stabs.texinfo (Parameters): Keep trying to get this right.
Wed Apr 21 15:18:47 1993 Jim Kingdon (kingdon@cygnus.com) Wed Apr 21 15:18:47 1993 Jim Kingdon (kingdon@cygnus.com)

View File

@ -1006,6 +1006,10 @@ same thing, the difference is that @samp{P} is a GNU invention and
handle either one. Symbol type @samp{C_RPSYM} is used with @samp{R} and handle either one. Symbol type @samp{C_RPSYM} is used with @samp{R} and
@samp{N_RSYM} is used with @samp{P}. @samp{N_RSYM} is used with @samp{P}.
There is at least one case where GCC uses a @samp{p}/@samp{r} pair
rather than @samp{P}; this is where the argument is passed in the
argument list and then loaded into a register.
There is another case similar to an argument in a register, which is an There is another case similar to an argument in a register, which is an
argument which is actually stored as a local variable. Sometimes this argument which is actually stored as a local variable. Sometimes this
happens when the argument was passed in a register and then the compiler happens when the argument was passed in a register and then the compiler
@ -1023,6 +1027,23 @@ symbol is an offset relative to the local variables for that function,
not relative to the arguments (on some machines those are the same not relative to the arguments (on some machines those are the same
thing, but not on all). thing, but not on all).
The following are said to go with N_PSYM:
@example
"name" -> "param_name:#type"
# -> p (value parameter)
-> i (value parameter by reference, indirect access)
-> v (variable parameter by reference)
-> C (read-only parameter, conformant array bound)
-> x (conformant array value parameter)
-> pP (<<??>>)
-> pF (<<??>>)
-> X (function result variable)
-> b (based variable)
value -> offset from the argument pointer (positive).
@end example
As a simple example, the code As a simple example, the code
@example @example
@ -1041,8 +1062,8 @@ produces the stabs
@end example @end example
The type definition of argv is interesting because it contains several The type definition of argv is interesting because it contains several
type definitions. Type 21 is ptr to type 2 (char) and argv (type 20) is type definitions. Type 21 is pointer to type 2 (char) and argv (type 20) is
ptr to type 21. pointer to type 21.
@node Aggregate Types @node Aggregate Types
@chapter Aggregate Types @chapter Aggregate Types
@ -2869,29 +2890,7 @@ of the compilation.
@node N_PSYM @node N_PSYM
@section 160 - 0xa0 - N_PSYM @section 160 - 0xa0 - N_PSYM
Parameter variable Parameter variable. @xref{Parameters}.
@display
stabs. "name", N_PSYM, NIL, NIL, value
@end display
@example
"name" -> "param_name:#type"
# -> p (value parameter)
-> i (value parameter by reference, indirect access)
-> v (variable parameter by reference)
-> C (read-only parameter, conformant array bound)
-> x (conformant array value parameter)
-> pP (<<??>>)
-> pF (<<??>>)
-> X (function result variable)
-> b (based variable)
value -> offset from the argument pointer (positive).
@end example
On most machines the argument pointer is the same as the frame
pointer.
@node N_EINCL @node N_EINCL
@section 162 - 0xa2 - N_EINCL @section 162 - 0xa2 - N_EINCL