Author: jingham Date: Wed Oct 28 17:23:17 2015 New Revision: 251564 URL: http://llvm.org/viewvc/llvm-project?rev=251564&view=rev Log: Change Target::EvaluateExpression to take an ExecutionContextScope * rather than a StackFrame * (StackFrame is an ExecutionContextScope.) That allows you to call an expression on a particular Thread, but not using the context of any particular frame. That in turn is useful for injecting utility functions that don't actually depend on locals/self/etc of the current frame.
I also had to include StackFrame.h in a couple of places so the compiler knew how to downcast StackFrame to ExecutionContextScope. <rdar://problem/22852953> Modified: lldb/trunk/include/lldb/Target/Target.h lldb/trunk/source/Plugins/Language/ObjC/CF.cpp lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp lldb/trunk/source/Target/Target.cpp Modified: lldb/trunk/include/lldb/Target/Target.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Target.h?rev=251564&r1=251563&r2=251564&view=diff ============================================================================== --- lldb/trunk/include/lldb/Target/Target.h (original) +++ lldb/trunk/include/lldb/Target/Target.h Wed Oct 28 17:23:17 2015 @@ -1381,7 +1381,7 @@ public: // in in th execution context. lldb::ExpressionResults EvaluateExpression (const char *expression, - StackFrame *frame, + ExecutionContextScope *exe_scope, lldb::ValueObjectSP &result_valobj_sp, const EvaluateExpressionOptions& options = EvaluateExpressionOptions()); Modified: lldb/trunk/source/Plugins/Language/ObjC/CF.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/CF.cpp?rev=251564&r1=251563&r2=251564&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Language/ObjC/CF.cpp (original) +++ lldb/trunk/source/Plugins/Language/ObjC/CF.cpp Wed Oct 28 17:23:17 2015 @@ -19,6 +19,7 @@ #include "lldb/Symbol/ClangASTContext.h" #include "lldb/Target/Language.h" #include "lldb/Target/ObjCLanguageRuntime.h" +#include "lldb/Target/StackFrame.h" #include "lldb/Target/Target.h" using namespace lldb; Modified: lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp?rev=251564&r1=251563&r2=251564&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp (original) +++ lldb/trunk/source/Plugins/Language/ObjC/NSDictionary.cpp Wed Oct 28 17:23:17 2015 @@ -27,6 +27,7 @@ #include "lldb/Symbol/ClangASTContext.h" #include "lldb/Target/Language.h" #include "lldb/Target/ObjCLanguageRuntime.h" +#include "lldb/Target/StackFrame.h" #include "lldb/Target/Target.h" using namespace lldb; Modified: lldb/trunk/source/Target/Target.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=251564&r1=251563&r2=251564&view=diff ============================================================================== --- lldb/trunk/source/Target/Target.cpp (original) +++ lldb/trunk/source/Target/Target.cpp Wed Oct 28 17:23:17 2015 @@ -2165,7 +2165,7 @@ Target::GetTargetFromContexts (const Exe ExpressionResults Target::EvaluateExpression(const char *expr_cstr, - StackFrame *frame, + ExecutionContextScope *exe_scope, lldb::ValueObjectSP &result_valobj_sp, const EvaluateExpressionOptions& options) { @@ -2183,9 +2183,9 @@ Target::EvaluateExpression(const char *e ExecutionContext exe_ctx; - if (frame) + if (exe_scope) { - frame->CalculateExecutionContext(exe_ctx); + exe_scope->CalculateExecutionContext(exe_ctx); } else if (m_process_sp) { _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits