[Lldb-commits] [lldb] r202464 - Plumb the EvaluateExpressionOptions::{Set, Get}StopOthers through the SB API, and make it work in RunThreadPlan.
Jim Ingham
jingham at apple.com
Thu Feb 27 18:52:07 PST 2014
Author: jingham
Date: Thu Feb 27 20:52:06 2014
New Revision: 202464
URL: http://llvm.org/viewvc/llvm-project?rev=202464&view=rev
Log:
Plumb the EvaluateExpressionOptions::{Set,Get}StopOthers through the SB API, and make it work in RunThreadPlan.
Also remove SetStopOthers from the ThreadPlanCallFunction, because if the value you have doesn't match what is
in the EvaluateExpressionOptions the plan was passed when created it won't work correctly.
Modified:
lldb/trunk/include/lldb/API/SBExpressionOptions.h
lldb/trunk/include/lldb/Target/ThreadPlanCallFunction.h
lldb/trunk/scripts/Python/interface/SBExpressionOptions.i
lldb/trunk/source/API/SBExpressionOptions.cpp
lldb/trunk/source/Target/Process.cpp
lldb/trunk/source/Target/ThreadPlanCallFunction.cpp
Modified: lldb/trunk/include/lldb/API/SBExpressionOptions.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/API/SBExpressionOptions.h?rev=202464&r1=202463&r2=202464&view=diff
==============================================================================
--- lldb/trunk/include/lldb/API/SBExpressionOptions.h (original)
+++ lldb/trunk/include/lldb/API/SBExpressionOptions.h Thu Feb 27 20:52:06 2014
@@ -64,6 +64,12 @@ public:
void
SetTryAllThreads (bool run_others = true);
+
+ bool
+ GetStopOthers() const;
+
+ void
+ SetStopOthers(bool stop_others = true);
bool
GetTrapExceptions () const;
Modified: lldb/trunk/include/lldb/Target/ThreadPlanCallFunction.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/ThreadPlanCallFunction.h?rev=202464&r1=202463&r2=202464&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/ThreadPlanCallFunction.h (original)
+++ lldb/trunk/include/lldb/Target/ThreadPlanCallFunction.h Thu Feb 27 20:52:06 2014
@@ -52,9 +52,6 @@ public:
virtual bool
StopOthers ();
- virtual void
- SetStopOthers (bool new_value);
-
virtual lldb::StateType
GetPlanRunState ();
Modified: lldb/trunk/scripts/Python/interface/SBExpressionOptions.i
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/interface/SBExpressionOptions.i?rev=202464&r1=202463&r2=202464&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/interface/SBExpressionOptions.i (original)
+++ lldb/trunk/scripts/Python/interface/SBExpressionOptions.i Thu Feb 27 20:52:06 2014
@@ -72,6 +72,13 @@ public:
SetTryAllThreads (bool run_others = true);
bool
+ GetStopOthers () const;
+
+ %feature("docstring", "Sets whether to stop other threads at all while running expressins. If false, TryAllThreads does nothing.") SetTryAllThreads;
+ void
+ SetStopOthers (bool stop_others = true);
+
+ bool
GetTrapExceptions () const;
%feature("docstring", "Sets whether to abort expression evaluation if an exception is thrown while executing. Don't set this to false unless you know the function you are calling traps all exceptions itself.") SetTryAllThreads;
Modified: lldb/trunk/source/API/SBExpressionOptions.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBExpressionOptions.cpp?rev=202464&r1=202463&r2=202464&view=diff
==============================================================================
--- lldb/trunk/source/API/SBExpressionOptions.cpp (original)
+++ lldb/trunk/source/API/SBExpressionOptions.cpp Thu Feb 27 20:52:06 2014
@@ -114,6 +114,18 @@ SBExpressionOptions::SetTryAllThreads (b
}
bool
+SBExpressionOptions::GetStopOthers () const
+{
+ return m_opaque_ap->GetStopOthers ();
+}
+
+void
+SBExpressionOptions::SetStopOthers (bool run_others)
+{
+ m_opaque_ap->SetStopOthers (run_others);
+}
+
+bool
SBExpressionOptions::GetTrapExceptions () const
{
return m_opaque_ap->GetTrapExceptions ();
Modified: lldb/trunk/source/Target/Process.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=202464&r1=202463&r2=202464&view=diff
==============================================================================
--- lldb/trunk/source/Target/Process.cpp (original)
+++ lldb/trunk/source/Target/Process.cpp Thu Feb 27 20:52:06 2014
@@ -5118,7 +5118,12 @@ Process::RunThreadPlan (ExecutionContext
TimeValue final_timeout = one_thread_timeout;
uint32_t timeout_usec = options.GetTimeoutUsec();
- if (options.GetTryAllThreads())
+ if (!options.GetStopOthers())
+ {
+ before_first_timeout = false;
+ final_timeout.OffsetWithMicroSeconds(timeout_usec);
+ }
+ else if (options.GetTryAllThreads())
{
// If we are running all threads then we take half the time to run all threads, bounded by
// .25 sec.
Modified: lldb/trunk/source/Target/ThreadPlanCallFunction.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/ThreadPlanCallFunction.cpp?rev=202464&r1=202463&r2=202464&view=diff
==============================================================================
--- lldb/trunk/source/Target/ThreadPlanCallFunction.cpp (original)
+++ lldb/trunk/source/Target/ThreadPlanCallFunction.cpp Thu Feb 27 20:52:06 2014
@@ -425,17 +425,6 @@ ThreadPlanCallFunction::StopOthers ()
return m_stop_other_threads;
}
-void
-ThreadPlanCallFunction::SetStopOthers (bool new_value)
-{
- if (m_subplan_sp)
- {
- ThreadPlanRunToAddress *address_plan = static_cast<ThreadPlanRunToAddress *>(m_subplan_sp.get());
- address_plan->SetStopOthers(new_value);
- }
- m_stop_other_threads = new_value;
-}
-
StateType
ThreadPlanCallFunction::GetPlanRunState ()
{
More information about the lldb-commits
mailing list