summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2011-05-12 02:06:14 +0000
committerJim Ingham <jingham@apple.com>2011-05-12 02:06:14 +0000
commit6026ca378d5cf87411b8502673f601dc9f7ee03d (patch)
tree92578a2717986c1644cdc63112f8e8057e1c6f2a /lldb/source/Target
parent822a298cf98c0a513757589f5d5914e6d7d443ff (diff)
downloadbcm5719-llvm-6026ca378d5cf87411b8502673f601dc9f7ee03d.tar.gz
bcm5719-llvm-6026ca378d5cf87411b8502673f601dc9f7ee03d.zip
Target::EvaluateExpression should suppress stop hooks.
llvm-svn: 131219
Diffstat (limited to 'lldb/source/Target')
-rw-r--r--lldb/source/Target/Target.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index 942d0816585..387a3363113 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -59,7 +59,8 @@ Target::Target(Debugger &debugger, const ArchSpec &target_arch, const lldb::Plat
m_scratch_ast_context_ap (NULL),
m_persistent_variables (),
m_stop_hooks (),
- m_stop_hook_next_id (0)
+ m_stop_hook_next_id (0),
+ m_suppress_stop_hooks (false)
{
SetEventName (eBroadcastBitBreakpointChanged, "breakpoint-changed");
SetEventName (eBroadcastBitModulesLoaded, "modules-loaded");
@@ -900,6 +901,11 @@ Target::EvaluateExpression
ExecutionResults execution_results = eExecutionSetupError;
result_valobj_sp.reset();
+
+ // We shouldn't run stop hooks in expressions.
+ // Be sure to reset this if you return anywhere within this function.
+ bool old_suppress_value = m_suppress_stop_hooks;
+ m_suppress_stop_hooks = true;
ExecutionContext exe_ctx;
if (frame)
@@ -1002,6 +1008,9 @@ Target::EvaluateExpression
result_valobj_sp);
}
}
+
+ m_suppress_stop_hooks = old_suppress_value;
+
return execution_results;
}
@@ -1068,6 +1077,9 @@ Target::SetAllStopHooksActiveState (bool active_state)
void
Target::RunStopHooks ()
{
+ if (m_suppress_stop_hooks)
+ return;
+
if (!m_process_sp)
return;
OpenPOWER on IntegriCloud