llvm-project/lldb/source/Plugins/ABI/X86
Jason Molenda fcdef15d77 Add a new Row setting to mark all un-declared regs as Undefined
Add a new state for UnwindPlan::Row which indicates that any
register not listed is not defined, and should not be found in
stack frames newer than this one and passed up the stack.  Mostly
intended for use with architectural default unwind plans that are
used for jitted stack frames, where we have no unwind information
or start address.  lldb has no way to tell if registers were
spilled in the jitted frame & overwritten, so passing register
values up the stack is not safe to show the user.

Architectural default unwind plans are also used as a fast unwind
plan on x86_64 in particular, and are used as the fallback unwind
plans when lldb thinks it may be able to work around a problem
which causes the unwinder to stop walking the stack early.

For fast unwind plans, when we don't find a register location in
the arch default unwind plan, we fall back to computing & using
the full unwind plan. One small part of this patch is to know that
a register marked as Undefined in the fast unwind plan is a special
case, and we should continue on to the full unwind plan to find what
the real unwind rule is for this register.

Differential Revision: https://reviews.llvm.org/D96829
<rdar://problem/70398009>
2021-02-17 23:52:28 -08:00
..
ABIMacOSX_i386.cpp Add a new Row setting to mark all un-declared regs as Undefined 2021-02-17 23:52:28 -08:00
ABIMacOSX_i386.h As part of using inclusive language with the llvm project, 2020-06-19 14:48:48 -07:00
ABISysV_i386.cpp Add a new Row setting to mark all un-declared regs as Undefined 2021-02-17 23:52:28 -08:00
ABISysV_i386.h As part of using inclusive language with the llvm project, 2020-06-19 14:48:48 -07:00
ABISysV_x86_64.cpp Add a new Row setting to mark all un-declared regs as Undefined 2021-02-17 23:52:28 -08:00
ABISysV_x86_64.h As part of using inclusive language with the llvm project, 2020-06-19 14:48:48 -07:00
ABIWindows_x86_64.cpp Add a new Row setting to mark all un-declared regs as Undefined 2021-02-17 23:52:28 -08:00
ABIWindows_x86_64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
ABIX86.cpp [lldb] Use llvm MC as the source of dwarf/eh register numbers for X86 ABIs 2020-02-28 10:49:08 +01:00
ABIX86.h [lldb] Use llvm MC as the source of dwarf/eh register numbers for X86 ABIs 2020-02-28 10:49:08 +01:00
ABIX86_64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
CMakeLists.txt [lldb/Plugins] Have one initializer per ABI plugin 2020-02-13 21:49:38 -08:00