From c156f3c1c9395bcb721678e07a5cf10b7c0d7b18 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Fri, 23 Apr 1993 16:27:10 +0000 Subject: [PATCH] more on Parameters --- gdb/doc/stabs.texinfo | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gdb/doc/stabs.texinfo b/gdb/doc/stabs.texinfo index 5876aec1f9..6b57c2913a 100644 --- a/gdb/doc/stabs.texinfo +++ b/gdb/doc/stabs.texinfo @@ -1010,6 +1010,17 @@ 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. +On the sparc and hppa, for a @samp{P} symbol whose type is a structure +or union, the register contains the address of the structure. On the +sparc, this is also true of a @samp{p}/@samp{r} pair (using Sun cc) or a +@samp{p} symbol. However, if a (small) structure is really in a +register, @samp{r} is used. And, to top it all off, on the hppa it +might be a structure which was passed on the stack and loaded into a +register and for which there is a @samp{p}/@samp{r} pair! I believe +that symbol descriptor @samp{i} is supposed to deal with this case, but +I don't know details or what compilers or debuggers use it, if any (not +GDB or GCC). + 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 -- 2.34.1