diff options
| author | Greg Clayton <gclayton@apple.com> | 2013-04-02 20:32:37 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2013-04-02 20:32:37 +0000 |
| commit | 1afa68ed14ad9636dda390add3bf74e32b5c0303 (patch) | |
| tree | 8db567d5296fe0d38df20e0cbe57bd7d29160eec /lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp | |
| parent | cbf87cc8d608dcb2902ae46bc63477abe3f2a835 (diff) | |
| download | llvm-1afa68ed14ad9636dda390add3bf74e32b5c0303.zip llvm-1afa68ed14ad9636dda390add3bf74e32b5c0303.tar.gz llvm-1afa68ed14ad9636dda390add3bf74e32b5c0303.tar.bz2 | |
<rdar://problem/13516463>
Don't crash when there is no register context for a thread with kernel debugging. The kernel debugging uses the OperatingSystemPlugin that may behave badly when trying to get thread state, so be prepared to have invalid register contexts in threads.
llvm-svn: 178574
Diffstat (limited to 'lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp')
| -rw-r--r-- | lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp index 8ce90e5..2961643 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp @@ -95,7 +95,9 @@ ThreadKDP::RefreshStateAfterStop() // register supply functions where they check the process stop ID and do // the right thing. const bool force = false; - GetRegisterContext()->InvalidateIfNeeded (force); + lldb::RegisterContextSP reg_ctx_sp (GetRegisterContext()); + if (reg_ctx_sp) + reg_ctx_sp->InvalidateIfNeeded (force); } void |
