llvm-project/lldb/source/Plugins/Process/Utility
Abhishek Aggarwal be994649b4 Fix to solve Bug 23139 & Bug 23560
Summary:
 - Reason of both bugs:

   1. For the very first frame, Unwinder doesn't check the validity
      of Full UnwindPlan before creating StackFrame from it:

        When 'process launch' command is run after setting a breakpoint
        in inferior, the Unwinder runs and saves only Frame 0 (the frame
        in which breakpoint was set) in thread's StackFrameList i.e.
        m_curr_frames_sp. However, it doesn't check the validity of the
        Full UnwindPlan for this frame by unwinding 2 more frames further.

   2. Unwinder doesn't update the CFA value of Cursor when Full UnwindPlan
      fails and FallBack UnwindPlan succeeds in providing valid CFA values
      for frames:

        Sometimes during unwinding of stack frames, the Full UnwindPlan
        inside the RegisterContextLLDB object may fail to provide valid
        CFA values for these frames. Then the Fallback UnwindPlan is used
        to unwind the frames.

        If the Fallback UnwindPlan succeeds, then it provides a valid new
        CFA value. The RegisterContextLLDB::m_cfa field of Cursor object
        is updated during the Fallback UnwindPlan execution. However,
        UnwindLLDB misses the implementation to update the 'cfa' field
        of this Cursor with this valid new CFA value.

 - This patch fixes both these issues.

 - Remove XFAIL in test files corresponding to these 2 Bugs

Change-Id: I932ea407545ceee2d628f946ecc61a4806d4cc86
Signed-off-by: Abhishek Aggarwal <abhishek.a.aggarwal@intel.com>

Reviewers: jingham, lldb-commits, jasonmolenda

Subscribers: lldb-commits, ovyalov, tberghammer

Differential Revision: http://reviews.llvm.org/D14226

llvm-svn: 253026
2015-11-13 10:47:49 +00:00
..
ARMDefines.h Handle thumb IT instructions correctly all the time. 2014-12-09 23:31:02 +00:00
ARMUtils.h Fix typos. 2014-07-08 18:05:41 +00:00
CMakeLists.txt [cmake] Remove LLVM_NO_RTTI. 2015-09-03 08:46:55 +00:00
DynamicRegisterInfo.cpp Clean up register naming conventions inside lldb. 2015-09-15 23:20:34 +00:00
DynamicRegisterInfo.h Added XML to the host layer. 2015-05-26 18:00:51 +00:00
FreeBSDSignals.cpp [LLDB] Insert names with same signo as alias instead of a new entry 2015-10-20 07:05:46 +00:00
FreeBSDSignals.h Refactor Unix signals. 2015-07-14 01:09:28 +00:00
GDBRemoteSignals.cpp Refactor Unix signals. 2015-07-14 01:09:28 +00:00
GDBRemoteSignals.h Refactor Unix signals. 2015-07-14 01:09:28 +00:00
HistoryThread.cpp Remove unused class variable and update all callers/users. 2014-09-09 06:14:23 +00:00
HistoryThread.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
HistoryUnwind.cpp Remove unused class variable and update all callers/users. 2014-09-09 06:14:23 +00:00
HistoryUnwind.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
InferiorCallPOSIX.cpp Fix a misunderstanding of the ThreadPlan::OkayToDiscard flag in InferiorCallPOSIX. It was 2015-10-12 19:11:03 +00:00
InferiorCallPOSIX.h Convert mmap options for target in InferiorCallMmap. 2015-05-09 15:53:31 +00:00
InstructionUtils.h A << operation would be undefined for a bit-selecting 2014-10-17 01:52:30 +00:00
LinuxSignals.cpp [LLDB] Insert names with same signo as alias instead of a new entry 2015-10-20 07:05:46 +00:00
LinuxSignals.h Refactor Unix signals. 2015-07-14 01:09:28 +00:00
Makefile [Makefiles] One more library rename to align with CMake 2015-07-15 22:39:44 +00:00
MipsLinuxSignals.cpp [LLDB] Insert names with same signo as alias instead of a new entry 2015-10-20 07:05:46 +00:00
MipsLinuxSignals.h Refactor Unix signals. 2015-07-14 01:09:28 +00:00
RegisterContextDarwin_arm.cpp Clean up register naming conventions inside lldb. 2015-09-15 23:20:34 +00:00
RegisterContextDarwin_arm.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextDarwin_arm64.cpp Make lldb::endian::InlHostByteOrder() private. 2015-11-07 04:40:13 +00:00
RegisterContextDarwin_arm64.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextDarwin_i386.cpp Clean up register naming conventions inside lldb. 2015-09-15 23:20:34 +00:00
RegisterContextDarwin_i386.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextDarwin_x86_64.cpp Make lldb::endian::InlHostByteOrder() private. 2015-11-07 04:40:13 +00:00
RegisterContextDarwin_x86_64.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextDummy.cpp Clean up register naming conventions inside lldb. 2015-09-15 23:20:34 +00:00
RegisterContextDummy.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextFreeBSD_arm.cpp FreeBSD/arm core file support 2015-04-20 13:58:19 +00:00
RegisterContextFreeBSD_arm.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextFreeBSD_arm64.cpp Handle FreeBSD/arm64 core files 2015-03-26 14:20:00 +00:00
RegisterContextFreeBSD_arm64.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextFreeBSD_i386.cpp Same issue as in D8685 but for i386. 2015-04-21 23:00:58 +00:00
RegisterContextFreeBSD_i386.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextFreeBSD_mips64.cpp [LLDB][MIPS] Fix offsets of all register sets and add MSA regset and FRE=1 mode support 2015-08-17 13:40:17 +00:00
RegisterContextFreeBSD_mips64.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextFreeBSD_powerpc.cpp Implement initial Altivec support 2015-02-05 07:12:01 +00:00
RegisterContextFreeBSD_powerpc.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextFreeBSD_x86_64.cpp Fix FreeBSD crash after r233837 2015-04-03 20:49:08 +00:00
RegisterContextFreeBSD_x86_64.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextHistory.cpp Clean up register naming conventions inside lldb. 2015-09-15 23:20:34 +00:00
RegisterContextHistory.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextLLDB.cpp Fix several issues around .ARM.exidx section handling 2015-10-02 11:58:26 +00:00
RegisterContextLLDB.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextLinux_arm.cpp Adds Register Context Linux/POSIX for ARM Architecture 2015-04-14 07:30:20 +00:00
RegisterContextLinux_arm.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextLinux_arm64.cpp Fix the handling of FPR offsets in Linux arm/aarch64 register contexts 2015-09-07 10:11:23 +00:00
RegisterContextLinux_arm64.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextLinux_i386.cpp X86: Change FTAG register size in FXSAVE structure 2015-10-12 09:57:00 +00:00
RegisterContextLinux_i386.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextLinux_mips.cpp [LLDB][MIPS] Fix GetUserRegisterInfoCount to count no of regs which are physically present 2015-11-03 09:13:45 +00:00
RegisterContextLinux_mips.h [LLDB][MIPS] Fix GetUserRegisterInfoCount to count no of regs which are physically present 2015-11-03 09:13:45 +00:00
RegisterContextLinux_mips64.cpp [LLDB][MIPS] Fix GetUserRegisterInfoCount to count no of regs which are physically present 2015-11-03 09:13:45 +00:00
RegisterContextLinux_mips64.h [LLDB][MIPS] Fix GetUserRegisterInfoCount to count no of regs which are physically present 2015-11-03 09:13:45 +00:00
RegisterContextLinux_x86_64.cpp Set orig_eax to -1 for Linux x86 platforms 2015-08-13 09:05:11 +00:00
RegisterContextLinux_x86_64.h Limit scope of RegisterContextPOSIX.h header 2015-09-14 13:16:59 +00:00
RegisterContextMacOSXFrameBackchain.cpp LLGS Android target support - for Andy Chien : http://reviews.llvm.org/D6166 2014-11-08 01:41:49 +00:00
RegisterContextMacOSXFrameBackchain.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextMach_arm.cpp
RegisterContextMach_arm.h
RegisterContextMach_i386.cpp
RegisterContextMach_i386.h
RegisterContextMach_x86_64.cpp
RegisterContextMach_x86_64.h
RegisterContextMemory.cpp Replace uint32_t by lldb::RegisterKing in register context API. 2014-07-02 09:51:28 +00:00
RegisterContextMemory.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextPOSIX_arm.cpp Correct machine type for 32-bit arm 2015-04-19 18:27:00 +00:00
RegisterContextPOSIX_arm.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextPOSIX_arm64.cpp Create NativeRegisterContext for android-arm64 2015-03-13 11:36:47 +00:00
RegisterContextPOSIX_arm64.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextPOSIX_mips64.cpp Replace uint32_t by lldb::RegisterKing in register context API. 2014-07-02 09:51:28 +00:00
RegisterContextPOSIX_mips64.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextPOSIX_powerpc.cpp Quiet Coverity 2015-02-12 05:31:31 +00:00
RegisterContextPOSIX_powerpc.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextPOSIX_x86.cpp Rename lldb registers to contain lldb_ prefix. 2014-11-21 02:00:21 +00:00
RegisterContextPOSIX_x86.h [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes. 2015-10-17 00:19:57 +00:00
RegisterContextThreadMemory.cpp Make sure if a thread specifies a 'register_data_addr' in a python operating system plug-in, that is is used to fetch the register values. 2014-12-11 23:53:52 +00:00
RegisterContextThreadMemory.h Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes. 2015-10-21 18:46:17 +00:00
RegisterContext_mips.h Clean up register naming conventions inside lldb. 2015-09-15 23:20:34 +00:00
RegisterContext_powerpc.h Clean up register naming conventions inside lldb. 2015-09-15 23:20:34 +00:00
RegisterContext_x86.h X86: Change FTAG register size in FXSAVE structure 2015-10-12 09:57:00 +00:00
RegisterInfoInterface.h Add missing include to RegisterInfoInterface.h 2015-08-13 10:41:55 +00:00
RegisterInfos_arm.h Fix Clang-tidy modernize-use-nullptr warnings in source/Plugins/Process/Utility headers; other minor fixes. 2015-10-30 00:55:29 +00:00
RegisterInfos_arm64.h Fix Clang-tidy modernize-use-nullptr warnings in source/Plugins/Process/Utility headers; other minor fixes. 2015-10-30 00:55:29 +00:00
RegisterInfos_i386.h Fix Clang-tidy modernize-use-nullptr warnings in source/Plugins/Process/Utility headers; other minor fixes. 2015-10-30 00:55:29 +00:00
RegisterInfos_mips.h Fix Clang-tidy modernize-use-nullptr warnings in source/Plugins/Process/Utility headers; other minor fixes. 2015-10-30 00:55:29 +00:00
RegisterInfos_mips64.h Fix Clang-tidy modernize-use-nullptr warnings in source/Plugins/Process/Utility headers; other minor fixes. 2015-10-30 00:55:29 +00:00
RegisterInfos_powerpc.h Clean up register naming conventions inside lldb. 2015-09-15 23:20:34 +00:00
RegisterInfos_x86_64.h Fix Clang-tidy modernize-use-nullptr warnings in source/Plugins/Process/Utility headers; other minor fixes. 2015-10-30 00:55:29 +00:00
StopInfoMachException.cpp The llvm Triple for an armv6m now comes back as llvm::Triple::thumb. 2015-08-21 00:13:37 +00:00
StopInfoMachException.h Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes. 2015-10-21 18:46:17 +00:00
ThreadMemory.cpp Fix stepping a virtual thread when the python operating system was enabled. 2015-04-07 22:17:41 +00:00
ThreadMemory.h Fix Clang-tidy modernize-use-nullptr warnings in source/Plugins/Process/Utility headers; other minor fixes. 2015-10-30 00:55:29 +00:00
UnwindLLDB.cpp Fix to solve Bug 23139 & Bug 23560 2015-11-13 10:47:49 +00:00
UnwindLLDB.h Fix to solve Bug 23139 & Bug 23560 2015-11-13 10:47:49 +00:00
UnwindMacOSXFrameBackchain.cpp Roll back the changes I made in r193907 which created a new Frame 2013-11-04 09:33:30 +00:00
UnwindMacOSXFrameBackchain.h Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes. 2015-10-21 18:46:17 +00:00
lldb-arm-register-enums.h Adds Register Context Linux/POSIX for ARM Architecture 2015-04-14 07:30:20 +00:00
lldb-arm64-register-enums.h Create NativeRegisterContext for android-arm64 2015-03-13 11:36:47 +00:00
lldb-mips-freebsd-register-enums.h [LLDB][MIPS] Fix offsets of all register sets and add MSA regset and FRE=1 mode support 2015-08-17 13:40:17 +00:00
lldb-mips-linux-register-enums.h [LLDB][MIPS] Fix offsets of all register sets and add MSA regset and FRE=1 mode support 2015-08-17 13:40:17 +00:00
lldb-x86-register-enums.h Fixing TestRegisters on Linux with LLGS 2015-01-23 22:57:00 +00:00