diff options
| author | Jim Ingham <jingham@apple.com> | 2011-05-12 02:06:14 +0000 |
|---|---|---|
| committer | Jim Ingham <jingham@apple.com> | 2011-05-12 02:06:14 +0000 |
| commit | 6026ca378d5cf87411b8502673f601dc9f7ee03d (patch) | |
| tree | 92578a2717986c1644cdc63112f8e8057e1c6f2a /lldb/source/Target | |
| parent | 822a298cf98c0a513757589f5d5914e6d7d443ff (diff) | |
| download | bcm5719-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.cpp | 14 |
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; |

