[Lldb-commits] [PATCH] D153043: [lldb] Fix handling of cfi_restore in the unwinder
Jason Molenda via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Jun 15 16:13:34 PDT 2023
jasonmolenda accepted this revision.
jasonmolenda added a comment.
This revision is now accepted and ready to land.
I can see why the existing code is written as it is, given the dwarf spec for DW_CFA_restore: "The DW_CFA_restore instruction takes a single operand (encoded with the opcode) that represents a register number. The required action is to change the rule for the indicated register to the rule assigned it by the `initial_instructions` in the CIE". The mistake in the current code is that any register not mentioned in the CIE state (the unwind rules at Row 0 in this UnwindPlan) is the unmodified value of the caller.
This patch is correct; the register was not mentioned in the CIE so should say there is no unwind rule for this register - it is the unmodified value of the caller function. I probably would have added a comment to this new line in the `else` block saying that explicitly, but that's just a personal preference.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D153043/new/
https://reviews.llvm.org/D153043
More information about the lldb-commits
mailing list