diff options
| author | Jim Ingham <jingham@apple.com> | 2014-07-19 01:09:16 +0000 |
|---|---|---|
| committer | Jim Ingham <jingham@apple.com> | 2014-07-19 01:09:16 +0000 |
| commit | 4ac0443fd90e264762f71f30d7a03b585009e109 (patch) | |
| tree | 36dae089941127ab360d3e2146cadfc1238bae9c | |
| parent | 3875a82d422230ba97c3c1a4fc452c5ad81af513 (diff) | |
| download | bcm5719-llvm-4ac0443fd90e264762f71f30d7a03b585009e109.tar.gz bcm5719-llvm-4ac0443fd90e264762f71f30d7a03b585009e109.zip | |
Add the ability to suppress the creation of a persistent
result variable and use in in "Process::LoadImage" so that,
for instance, "process load" doesn't increment the return
variable number.
llvm-svn: 213440
| -rw-r--r-- | lldb/include/lldb/Target/Target.h | 14 | ||||
| -rw-r--r-- | lldb/source/Expression/ClangUserExpression.cpp | 5 | ||||
| -rw-r--r-- | lldb/source/Target/Process.cpp | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/lldb/include/lldb/Target/Target.h b/lldb/include/lldb/Target/Target.h index 6e433ce6a91..64f3edf0fc4 100644 --- a/lldb/include/lldb/Target/Target.h +++ b/lldb/include/lldb/Target/Target.h @@ -208,6 +208,7 @@ public: m_debug(false), m_trap_exceptions(true), m_generate_debug_info(false), + m_result_is_internal(false), m_use_dynamic(lldb::eNoDynamicValues), m_timeout_usec(default_timeout), m_one_thread_timeout_usec(0), @@ -402,6 +403,18 @@ public: return m_cancel_callback (phase, m_cancel_callback_baton); } + void + SetResultIsInternal (bool b) + { + m_result_is_internal = b; + } + + bool + GetResultIsInternal () const + { + return m_result_is_internal; + } + private: ExecutionPolicy m_execution_policy; lldb::LanguageType m_language; @@ -414,6 +427,7 @@ private: bool m_debug; bool m_trap_exceptions; bool m_generate_debug_info; + bool m_result_is_internal; lldb::DynamicValueType m_use_dynamic; uint32_t m_timeout_usec; uint32_t m_one_thread_timeout_usec; diff --git a/lldb/source/Expression/ClangUserExpression.cpp b/lldb/source/Expression/ClangUserExpression.cpp index 62f2869dd4b..5c1b467edac 100644 --- a/lldb/source/Expression/ClangUserExpression.cpp +++ b/lldb/source/Expression/ClangUserExpression.cpp @@ -1070,6 +1070,11 @@ ClangUserExpression::Evaluate (ExecutionContext &exe_ctx, user_expression_sp, expr_result); + if (options.GetResultIsInternal()) + { + process->GetTarget().GetPersistentVariables().RemovePersistentVariable (expr_result); + } + if (execution_results != lldb::eExpressionCompleted) { if (log) diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 5446ae67a0d..7e09e7e79af 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -1524,6 +1524,8 @@ Process::LoadImage (const FileSpec &image_spec, Error &error) expr_options.SetUnwindOnError(true); expr_options.SetIgnoreBreakpoints(true); expr_options.SetExecutionPolicy(eExecutionPolicyAlways); + expr_options.SetResultIsInternal(true); + StreamString expr; expr.Printf(R"( struct __lldb_dlopen_result { void *image_ptr; const char *error_str; } the_result; |

