llvm-project/lldb/source/Plugins/Process
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
..
FreeBSD Make lldb::endian::InlHostByteOrder() private. 2015-11-07 04:40:13 +00:00
Linux Fix for AArch64 watchpoint cache corruption in case of ptrace failure 2015-11-06 12:56:34 +00:00
MacOSX-Kernel Make lldb::endian::InlHostByteOrder() private. 2015-11-07 04:40:13 +00:00
POSIX Use SI_KERNEL on platforms defining it 2015-09-14 16:51:58 +00:00
Utility Fix to solve Bug 23139 & Bug 23560 2015-11-13 10:47:49 +00:00
Windows Implement RegisterContext for Mini Dumps. 2015-11-12 21:16:15 +00:00
elf-core Make core files not crash when you load a core file into LLDB with just "lldb -c core". 2015-10-28 18:04:38 +00:00
gdb-remote Avoid sending bare '*' and '}' in an lldb-server packet 2015-11-09 22:05:05 +00:00
mach-core Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes. 2015-10-19 18:52:10 +00:00
CMakeLists.txt Refactor Windows process plugin to allow code sharing between live and mini dump debugging. 2015-10-28 18:21:45 +00:00