Handle the case where you make a ClangExpressionDeclMap without a selected frame.

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121099 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangExpressionDeclMap.cpp b/source/Expression/ClangExpressionDeclMap.cpp
index bd68b7b..f8f619e 100644
--- a/source/Expression/ClangExpressionDeclMap.cpp
+++ b/source/Expression/ClangExpressionDeclMap.cpp
@@ -37,6 +37,7 @@
 #include "lldb/Target/RegisterContext.h"
 #include "lldb/Target/StackFrame.h"
 #include "lldb/Target/Target.h"
+#include "lldb/Target/Thread.h"
 #include "llvm/Support/raw_ostream.h"
 
 using namespace lldb;
@@ -65,7 +66,9 @@
     
     if (exe_ctx.frame)
         m_parser_vars->m_sym_ctx = exe_ctx.frame->GetSymbolContext(lldb::eSymbolContextEverything);
-    
+    else if (exe_ctx.thread)
+        m_parser_vars->m_sym_ctx = exe_ctx.thread->GetStackFrameAtIndex(0)->GetSymbolContext(lldb::eSymbolContextEverything);
+            
     if (exe_ctx.process)
         m_parser_vars->m_persistent_vars = &exe_ctx.process->GetPersistentVariables();
 }
@@ -313,7 +316,9 @@
     assert (m_parser_vars.get());
     
     // Back out in all cases where we're not fully initialized
-    if (m_parser_vars->m_exe_ctx->frame == NULL)
+    if (m_parser_vars->m_exe_ctx->target == NULL)
+        return false;
+    if (!m_parser_vars->m_sym_ctx.target_sp)
         return false;
 
     SymbolContextList sc_list;