This is the mail archive of the
gdb@sourceware.cygnus.com
mailing list for the GDB project.
Re: fix to noexec_user_stack on solaris 2.{6,7}
- To: "Peter.Schauer" <Peter dot Schauer at Regent dot E-Technik dot TU-Muenchen dot DE>
- Subject: Re: fix to noexec_user_stack on solaris 2.{6,7}
- From: Rob <capveg at cs dot umd dot edu>
- Date: Wed, 20 Oct 1999 13:15:39 -0400
- cc: capveg at cs dot umd dot edu (Rob), gdb at sourceware dot cygnus dot com, capveg at cs dot umd dot edu
In message <199910200839.KAA17702@reisser.regent.e-technik.tu-muenchen.de>, "Pe
ter.Schauer" writes:
>This will break calling of functions that return a structure or union.
>
>As per sparc calling conventions the call must looks like this:
>
> call fun,0
> nop
> unimp <size of returned struct>
>
>Setting CALL_DUMMY_LOCATION to AT_ENTRY_POINT doesn't handle this case.
>
>When I was looking at the problem a long time ago, I had no idea how to
>solve it properly.
Just so I am clear on how this breaks:
gdb successfully makes the call and returns, but if the return type
is a struct or union, the size is not correctly reported. With an
incorrect size, you can look into the internals of the struct.
Is that right? If so, I think I am just going to apply the patch to my
systems, and be done with it. (Read: "users be damned" :)
Does anyone have any good pointers to information on Sparc calling
conventions?
I have the "Sparc Assembly Reference Manual" that comes with the big solaris
documentation set, but I find it relatively useless.
Thanks for the help,
- Rob
.