[Lldb-commits] [PATCH] D18977: Add new ABI callback to provide fallback unwind register locations

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 12 17:51:46 PDT 2016

jasonmolenda added a comment.

Thanks for doing this work Ulrich, the assumption that SP==CFA was mine, I should have put this in the ABI from the start.

I worry a little about the change to RegisterContextLLDB::SavedLocationForRegister() where you've moved the ABI is-volatile check into ABI::GetFallbackRegisterLocation.  If this function can't find an unwind rule for a non-volatile register, it will return UnwindLLDB::RegisterSearchResult::eRegisterNotFound and UnwindLLDB will continue searching for a definition down the stack.

You're changing the call to ABI::RegisterIsVolatile to unwindplan_regloc.IsUndefined(), assuming that GetFallbackRegisterLocation set it to undefined.  But could a register have an undefined state from the eh_frame rules?  I'm not sure what that would indicate - but presumably this function doesn't use that register and lldb should continue its search.

I may not be correct about this point - but what do you think about this possibility?


More information about the lldb-commits mailing list