fix to noexec_user_stack on solaris 2.{6,7}

Rob capveg@cs.umd.edu
Wed Oct 20 10:17:00 GMT 1999


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
.




More information about the Gdb mailing list