mirror of
https://github.com/intel/llvm.git
synced 2026-01-20 01:58:44 +08:00
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
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user