mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 01:50: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)
|
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
|
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
|
||||||
|
Reference in New Issue
Block a user