[Lldb-commits] [PATCH] D18977: Add new ABI callback to provide fallback unwind register locations
Tamas Berghammer via lldb-commits
lldb-commits at lists.llvm.org
Wed Apr 13 03:29:35 PDT 2016
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.
More information about the lldb-commits