This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Calling an Ada subprogram with complex parameters


On Mon, Mar 19, 2007 at 08:08:02PM +0000, jagorak wrote:
> >> where  $myRec  is  a  convenience  variable of type "Rec", but this
> >> wouldn't   work   either  since  convenience  variable  resides  in
> >> gdb-specific  memory  space,  complex  types  seem  to be passed by
> >> reference and myProc cannot access memory address of $myRec.
> 
> DJ> Actually, that's not true - convenience variables which have a
> DJ> memory location are put into the target's memory.  Sometimes GDB
> DJ> uses the stack, other times malloc is called under the hood.
> 
> That  is  very  good  news to me, as using absolute addressess is much
> less convenient than using convenience variables.

It depends on what you've done with them.  As you see below, it's
possible in some cases to have a convenience variable of a compound
type.  If you do that, it does not have a memory location.

GDB would need support for pushing the variable into target memory at
the appropriate time (and deciding what "appropriate" meant).

This is made rather tricky, because (A) calling malloc perturbs the
program, so we want to do it as little as possible, but (B) putting a
variable on the stack breaks if the called function saves its address.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]