This is the mail archive of the
mailing list for the binutils project.
Re: [RFC] Wrong register numbers in .dwarf_frame on Linux/PowerPC
- From: Mark Wielaard <mjw at redhat dot com>
- To: Ulrich Weigand <uweigand at de dot ibm dot com>
- Cc: dje dot gcc at gmail dot com, geoffk at geoffk dot org, jakub at redhat dot com, gcc-patches at gcc dot gnu dot org, binutils at sourceware dot org, gdb-patches at sourceware dot org
- Date: Wed, 28 Nov 2012 12:26:25 +0100
- Subject: Re: [RFC] Wrong register numbers in .dwarf_frame on Linux/PowerPC
- References: <201211271849.qARInCSZ031343@d06av02.portsmouth.uk.ibm.com>
On Tue, 2012-11-27 at 19:49 +0100, Ulrich Weigand wrote:
> Mark Wielaard wrote:
> > Which other unwinders are out there, that might rely on the current
> > numbering?
> Well, runtime unwinders using .eh_frame should be fine, since this
> uses (and has always used) consistently the GCC numbering. I don't
> know if there are other unwinders using .dwarf_frame ...
The reason systemtap hits this is that it can do unwinding of both user
and kernel space. The linux kernel doesn't include eh_frames, so we have
to fall back to .debug_frame.
> The change will most likely be to consistently use GCC numbering in
> .dwarf_frame as well, which changes only the encoding of the condition
> code register. Since you're not using that at all in systemtap, you
> shouldn't be affected.
Yeah, we only use the unwinder currently to produce backtraces, which
are unlikely to rely on the condition code register.
> As far as Linux goes, yes, ppc was the only architecture with a
> different encoding between .eh_frame and .dwarf_frame.
In that case your option 3 seems ideal.