aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectExpression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Commands/CommandObjectExpression.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectExpression.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp
index b29c0c7..9026b74 100644
--- a/lldb/source/Commands/CommandObjectExpression.cpp
+++ b/lldb/source/Commands/CommandObjectExpression.cpp
@@ -190,6 +190,27 @@ bool
CommandObjectExpression::EvaluateExpression (const char *expr, bool bare, Stream &output_stream, Stream &error_stream,
CommandReturnObject *result)
{
+ if (!m_exe_ctx.process)
+ {
+ error_stream.Printf ("Execution context doesn't contain a process");
+ return false;
+ }
+
+ if (!m_exe_ctx.process->GetDynamicCheckers())
+ {
+ DynamicCheckerFunctions *dynamic_checkers = new DynamicCheckerFunctions();
+
+ StreamString install_errors;
+
+ if (!dynamic_checkers->Install(install_errors, m_exe_ctx))
+ {
+ error_stream.Printf("Couldn't install dynamic checkers into the execution context: %s", install_errors.GetData());
+ return false;
+ }
+
+ m_exe_ctx.process->SetDynamicCheckers(dynamic_checkers);
+ }
+
ClangUserExpression user_expression (expr);
if (!user_expression.Parse (error_stream, m_exe_ctx))