aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-04-23 14:51:03 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-04-23 14:51:03 +0000
commita2a2eac845d366f089013009176b6f03da46bea5 (patch)
tree8f7d88c2bcf4c1aecda95d6665d2e9c72ee9faaf /gdb
parent7586127f7e05c0c4d375e34b7508bbe0cbc166de (diff)
downloadgdb-a2a2eac845d366f089013009176b6f03da46bea5.zip
gdb-a2a2eac845d366f089013009176b6f03da46bea5.tar.gz
gdb-a2a2eac845d366f089013009176b6f03da46bea5.tar.bz2
* stabs.texinfo (Parameters): Keep trying to get this right.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/doc/ChangeLog4
-rw-r--r--gdb/doc/stabs.texinfo49
2 files changed, 26 insertions, 27 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index a1f6e4f..0c518ef 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -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)
diff --git a/gdb/doc/stabs.texinfo b/gdb/doc/stabs.texinfo
index 56af513..93cd4c4 100644
--- a/gdb/doc/stabs.texinfo
+++ b/gdb/doc/stabs.texinfo
@@ -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