Re: Exception Handling implementation with Return Address (RA) having PC right shifted by 1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sumanth Gundapaneni <Sumanth.Gundapaneni@xxxxxxxxxxxxxxx> writes:

>    The problem arises with throw and catch code in c++ EH code. During the runtime unwinding process of stack, RA register value which is a right shifted value of PC (because of hardware implementation) is interpreted by stack unwinder as is. So the call backs across functions were pointed to wrong locations. 

Hmmm, I see.

> How can I adjust the RA (return address) so that my throw, catch EH code works fine with my compiler.

To be clear, I don't think you want to adjust the RA.  I think you want
to adjust the DWARF encoding of the RA, so that the DWARF code knows
what to do with the value.  As I said earlier, the usual way to tell the
DWARF code to do something unusual is to build a REG_CFA_DEF_CFA note
and attach it to some relevant insn.  This is an unusual case which I've
never seen before, and I don't know exactly how to deal with it.  But I
think REG_CFA_DEF_CFA is the right area to look.

Ian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux