[Lldb-commits] [lldb] [lldb] Improve unwinding for discontinuous functions (PR #111409)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Mon Oct 7 10:27:39 PDT 2024


================
@@ -3583,10 +3583,12 @@ class CommandObjectTargetModulesShowUnwind : public CommandObjectParsed {
       addr_t start_addr = range.GetBaseAddress().GetLoadAddress(target);
       if (abi)
         start_addr = abi->FixCodeAddress(start_addr);
+      range.GetBaseAddress().SetLoadAddress(start_addr, target);
 
       FuncUnwindersSP func_unwinders_sp(
           sc.module_sp->GetUnwindTable()
-              .GetUncachedFuncUnwindersContainingAddress(start_addr, sc));
+              .GetUncachedFuncUnwindersContainingAddress(range.GetBaseAddress(),
----------------
labath wrote:

This is because `image show-unwind` wouldn't use the eh_frame address range without it (it requires a resolved address). 

BTW. This would have been easier to investigate (and test) if this command used the actual cached unwind plans instead of creating them from scratch. This way I was left puzzled as to unwind went off track even though the unwind plans looked (mostly) reasonable. What would you say to:
a) adding an option to use/print the cached plans
b) making this option the default
c) deleting the non-cached option entirely?

https://github.com/llvm/llvm-project/pull/111409


More information about the lldb-commits mailing list