tberghammer added a subscriber: tberghammer.
tberghammer added a comment.

My understanding of the eh_frame is that "undefined" means the value of the 
register is not recoverable in the current frame (default for volatile 
registers) while the meaning of "same" is that this frame haven't messed with 
the register so we should continue looking for its value down the stack. Based 
on this I think this change is doing the right thing and our previous 
implementation is the one what is incorrect in some case.

The relevant information from the dwarf spec (from section 6.4.1):

> undefined: A register that has this rule has no recoverable value in the 
> previous frame. (By convention, it is not preserved by a callee.)

>  same value: This register has not been modified from the previous frame. (By 
> convention, it is preserved by the callee, but the callee has not modified 
> it.)


Additionally I run this code through TestStandartUnwind on ARM what is a basic 
stress test for the unwinding system and it detected no issues.


http://reviews.llvm.org/D18977



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to