This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Don't overshoot when executing cfa instructions
- From: Daniel Jacobowitz <drow at false dot org>
- To: Andreas Schwab <schwab at linux-m68k dot org>
- Cc: gdb-patches at sourceware dot org
- Date: Sat, 27 Jun 2009 18:33:41 -0400
- Subject: Re: Don't overshoot when executing cfa instructions
- References: <m2ws6xqptl.fsf@igel.home>
On Sun, Jun 28, 2009 at 12:23:02AM +0200, Andreas Schwab wrote:
> The dwarf2 unwinder is careful to substract one from pc when finding the
> associated fde, but when executing the cfa instructions it uses the
> original pc as the limit, which may cause it to execute too much, for
> example if this is a frame calling a noreturn function. Tested on
> powerpc-linux.
Actually, before approving this I have a question. What about state
changes caused by the branch?
I remember a similar problem with location lists. Before the branch,
a variable lives at some location. Inside the called function, it is
gone. Did we ever find a representation for that? Does it rely
on the instruction after the branch marking the register as clobbered?
Sorry, I can't find a link.
--
Daniel Jacobowitz
CodeSourcery