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