This is the mail archive of the gdb@sources.redhat.com 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: [RFC] Struct return values


   Date: Sat, 17 Jan 2004 14:08:45 -0500
   From: Andrew Cagney <cagney@gnu.org>

Mark, BTW,

   How does:
	   extract_returned_value_address (arch, type, caller_frame)
   look for a function name?

Seems fine to me.  I'll have a go at implementing this after I've
flushed some of my pending changes.  A target should only define this
method if it has a realiable way, at every point in a called function,
to fetch the address, isn't it?

When looking at the code I found two cases:


"return VALUE":
GDB first pops the callers frame, and second stores the return VALUE. This means that the method will see caller's frame just after the callee has been forceably "returned".


"finish"
GDB first finishes the function, and second extracts the return VALUE. This again means that the method will see the caller's frame just after the callee has returned.


So perhaphs something like:
The target should only define this method if it has a reliable way of extracting the struct-convention return-value address using only information obtained from the caller's frame just after the callee has returned. [insert something about how this is impossible on most ABIs :-)]


Andrew




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