diff options
author | Sean Callanan <scallanan@apple.com> | 2013-06-20 18:42:16 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2013-06-20 18:42:16 +0000 |
commit | a4e8105bfdb94bbc12fb147bd6dd9543dff3780a (patch) | |
tree | b46c28d2ed9d04ceea05a3aa333d6bce18a6b997 /lldb/source/Expression/Materializer.cpp | |
parent | db5d8feeead5b191051e2f4703952a004a19768a (diff) | |
download | llvm-a4e8105bfdb94bbc12fb147bd6dd9543dff3780a.zip llvm-a4e8105bfdb94bbc12fb147bd6dd9543dff3780a.tar.gz llvm-a4e8105bfdb94bbc12fb147bd6dd9543dff3780a.tar.bz2 |
Fixed a problem with materialization and
dematerialization of registers that caused
conditional breakpoint expressions not to
work properly. Also added a testcase.
<rdar://problem/14129252>
llvm-svn: 184451
Diffstat (limited to 'lldb/source/Expression/Materializer.cpp')
-rw-r--r-- | lldb/source/Expression/Materializer.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lldb/source/Expression/Materializer.cpp b/lldb/source/Expression/Materializer.cpp index 4bc4f81..52dfefd 100644 --- a/lldb/source/Expression/Materializer.cpp +++ b/lldb/source/Expression/Materializer.cpp @@ -21,6 +21,7 @@ #include "lldb/Target/RegisterContext.h" #include "lldb/Target/StackFrame.h" #include "lldb/Target/Target.h" +#include "lldb/Target/Thread.h" using namespace lldb_private; @@ -1288,7 +1289,11 @@ Materializer::Materialize (lldb::StackFrameSP &frame_sp, IRMemoryMap &map, lldb: void Materializer::Dematerializer::Dematerialize (Error &error, lldb::ClangExpressionVariableSP &result_sp, lldb::addr_t frame_bottom, lldb::addr_t frame_top) { - lldb::StackFrameSP frame_sp = m_frame_wp.lock(); + lldb::StackFrameSP frame_sp; + + lldb::ThreadSP thread_sp = m_thread_wp.lock(); + if (thread_sp) + frame_sp = thread_sp->GetFrameWithStackID(m_stack_id); ExecutionContextScope *exe_scope = m_map->GetBestExecutionContextScope(); |