[all-commits] [llvm/llvm-project] 07b9e6: [lldb] Fix handling of cfi_restore in the unwinder
Jaroslav Sevcik via All-commits
all-commits at lists.llvm.org
Thu Jun 15 23:03:35 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 07b9e6ed0db206912b99c153a6bcfcb41f792cc5
https://github.com/llvm/llvm-project/commit/07b9e6ed0db206912b99c153a6bcfcb41f792cc5
Author: Jaroslav Sevcik <jarin at google.com>
Date: 2023-06-16 (Fri, 16 Jun 2023)
Changed paths:
M lldb/source/Symbol/DWARFCallFrameInfo.cpp
A lldb/test/Shell/Unwind/Inputs/eh-frame-dwarf-unwind-abort.s
A lldb/test/Shell/Unwind/eh-frame-dwarf-unwind-abort.test
Log Message:
-----------
[lldb] Fix handling of cfi_restore in the unwinder
Currently, lldb's unwinder ignores cfi_restore opcodes for registers
that are not set in the first row of the unwinding info. This prevents
unwinding of failed assertion in Chrome/v8 (https://github.com/v8/v8).
The attached test is an x64 copy of v8's function that failed to unwind
correctly (V8_Fatal).
This patch changes handling of cfi_restore to reset the location if
the first unwind table row does not map the restored register.
Differential Revision: https://reviews.llvm.org/D153043
More information about the All-commits
mailing list