mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
* stabs.texinfo (Parameters): Keep trying to get this right.
This commit is contained in:
@ -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)
|
||||
|
||||
|
@ -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
|
||||
@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
|
||||
argument which is actually stored as a local variable. Sometimes this
|
||||
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
|
||||
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
|
||||
|
||||
@example
|
||||
@ -1041,8 +1062,8 @@ produces the stabs
|
||||
@end example
|
||||
|
||||
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
|
||||
ptr to type 21.
|
||||
type definitions. Type 21 is pointer to type 2 (char) and argv (type 20) is
|
||||
pointer to type 21.
|
||||
|
||||
@node Aggregate Types
|
||||
@chapter Aggregate Types
|
||||
@ -2869,29 +2890,7 @@ of the compilation.
|
||||
@node N_PSYM
|
||||
@section 160 - 0xa0 - N_PSYM
|
||||
|
||||
Parameter variable
|
||||
|
||||
@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.
|
||||
Parameter variable. @xref{Parameters}.
|
||||
|
||||
@node N_EINCL
|
||||
@section 162 - 0xa2 - N_EINCL
|
||||
|
Reference in New Issue
Block a user