This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: dwarf2 loclist question
On Mon, Apr 05, 2004 at 07:36:03AM +0200, Josef Zlomek wrote:
> > > Is not return address supposed to be at the same offset from
> > > frame base or in
> > > the same register in the whole function?
> >
> > No, its not always true. For example, in case of SH, initial return address is
> > in PR and for non-leaf functions, PR is saved on stack. With simple location
> > description, only one of the above can be used. If return address location on
> > stack is used for DW_AT_return_addr then backtrace fails when program counter
> > is at function entry.
>
> I see.
> The original location of return address and the new locations need to be marked
> so that variable tracking could generate the location list. I'll investigate
> how this can be done. It will also need some tweak to var-tracking.
> But generally it should be possible to use var-tracking to generate the location
> list for return address.
Please don't add new code to do this. The data is already there. If,
for some reason, we want to support debuggers that require
DW_AT_return_addr, then use the information recorded by the
.debug_frame/.eh_frame machinery, which already knows how to unwind the
stack.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer