llvm-project/lldb/unittests
Jason Molenda c3ea7c66fe Add support for mid-function epilogues on x86 that end in a non-local jump.
The x86 assembly inspection engine has code to support detecting a
mid-function epilogue that ends in a RET instruction; add support for 
recognizing an epilogue that ends in a JMP, and add a check that the
unwind state has been restored to the original stack setup; reinstate
the post-prologue unwind state after this JMP instruction.

The assembly inspection engine used for other architectures, 
UnwindAssemblyInstEmulation, detects mid-function epilogues by 
tracking branch instructions within the function and "forwards"
the current unwind state to the targets of the branches.  If
an epilogue unwinds the stack and exits, followed by a branch
target, we get back to the correct unwind state.  The x86 
unwinder should move to this same algorithm, or possibly even
look at implementing an x86 instruction emulation plugin and
get UnwindAssemblyInstEmulation to work for x86 too.  I added
a branch instruction recognizier method that will be necessary
if we want to switch the algorithm.

Differential Revision: https://reviews.llvm.org/D62764
<rdar://problem/51074422> 

llvm-svn: 362456
2019-06-03 22:34:12 +00:00
..
Breakpoint Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Core Include inlined functions when figuring out a contiguous address range 2019-05-06 20:01:21 +00:00
Disassembler When disassembling Aarch64 target and vendor Apple, set the cpu to 2019-03-07 03:16:45 +00:00
Editline C.128 override, virtual keyword handling 2019-05-03 10:03:28 +00:00
Expression DWARFExpression: Fix implementation of DW_OP_pick 2019-04-29 10:55:22 +00:00
Host Make ConnectionFileDescription work with all sockets 2019-05-30 23:30:35 +00:00
Interpreter Include inlined functions when figuring out a contiguous address range 2019-05-06 20:01:21 +00:00
Language Make CPlusPlusNameParser robust against nullptr StringRefs. 2019-05-31 00:18:42 +00:00
ObjectFile Include inlined functions when figuring out a contiguous address range 2019-05-06 20:01:21 +00:00
Platform Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Process minidump: Remove checked-in files used for testing MemoryList handling 2019-05-20 08:22:59 +00:00
ScriptInterpreter [CMake] Only the Python scirpt interpreter should link against Python. 2019-04-01 22:03:04 +00:00
Signals Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Symbol Fixup r360161 2019-05-07 16:13:10 +00:00
SymbolFile Fix a regression in DWARF access speed caused by svn revision 356190 2019-05-30 15:32:33 +00:00
Target C.128 override, virtual keyword handling 2019-05-03 10:03:28 +00:00
TestingSupport Fix file names in file headers. NFC 2019-05-13 04:42:32 +00:00
UnwindAssembly Add support for mid-function epilogues on x86 that end in a non-local jump. 2019-06-03 22:34:12 +00:00
Utility Silence 'warning C4305: 'initializing': truncation from 'double' to 'float'' with MSVC 19.16.27021.1 (VS2017 15.9.12) 2019-06-03 18:46:30 +00:00
debugserver [NFC] Remove ASCII lines from comments 2019-04-10 20:48:55 +00:00
tools [lldb-server unittest] Add missing teardown logic 2019-06-03 15:18:15 +00:00
CMakeLists.txt [CMake] Folder structure for generated Xcode project to cover more targets 2019-05-28 09:29:05 +00:00
gtest_common.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00