diff options
Diffstat (limited to 'lldb/source/API/SBThreadPlan.cpp')
-rw-r--r-- | lldb/source/API/SBThreadPlan.cpp | 319 |
1 files changed, 119 insertions, 200 deletions
diff --git a/lldb/source/API/SBThreadPlan.cpp b/lldb/source/API/SBThreadPlan.cpp index 2b0811b1729..9977d199a94 100644 --- a/lldb/source/API/SBThreadPlan.cpp +++ b/lldb/source/API/SBThreadPlan.cpp @@ -9,9 +9,9 @@ #include "lldb/API/SBThread.h" -#include "lldb/API/SBSymbolContext.h" #include "lldb/API/SBFileSpec.h" #include "lldb/API/SBStream.h" +#include "lldb/API/SBSymbolContext.h" #include "lldb/Breakpoint/BreakpointLocation.h" #include "lldb/Core/Debugger.h" #include "lldb/Core/State.h" @@ -19,22 +19,21 @@ #include "lldb/Core/StreamFile.h" #include "lldb/Core/StructuredData.h" #include "lldb/Interpreter/CommandInterpreter.h" -#include "lldb/Target/SystemRuntime.h" -#include "lldb/Target/Thread.h" -#include "lldb/Target/ThreadPlan.h" +#include "lldb/Symbol/CompileUnit.h" +#include "lldb/Symbol/SymbolContext.h" #include "lldb/Target/Process.h" #include "lldb/Target/Queue.h" -#include "lldb/Symbol/SymbolContext.h" -#include "lldb/Symbol/CompileUnit.h" #include "lldb/Target/StopInfo.h" +#include "lldb/Target/SystemRuntime.h" #include "lldb/Target/Target.h" +#include "lldb/Target/Thread.h" +#include "lldb/Target/ThreadPlan.h" #include "lldb/Target/ThreadPlan.h" #include "lldb/Target/ThreadPlanPython.h" +#include "lldb/Target/ThreadPlanStepInRange.h" #include "lldb/Target/ThreadPlanStepInstruction.h" #include "lldb/Target/ThreadPlanStepOut.h" #include "lldb/Target/ThreadPlanStepRange.h" -#include "lldb/Target/ThreadPlanStepInRange.h" - #include "lldb/API/SBAddress.h" #include "lldb/API/SBDebugger.h" @@ -50,243 +49,163 @@ using namespace lldb_private; //---------------------------------------------------------------------- // Constructors //---------------------------------------------------------------------- -SBThreadPlan::SBThreadPlan () -{ -} +SBThreadPlan::SBThreadPlan() {} -SBThreadPlan::SBThreadPlan (const ThreadPlanSP& lldb_object_sp) : - m_opaque_sp (lldb_object_sp) -{ -} +SBThreadPlan::SBThreadPlan(const ThreadPlanSP &lldb_object_sp) + : m_opaque_sp(lldb_object_sp) {} -SBThreadPlan::SBThreadPlan (const SBThreadPlan &rhs) : - m_opaque_sp (rhs.m_opaque_sp) -{ - -} +SBThreadPlan::SBThreadPlan(const SBThreadPlan &rhs) + : m_opaque_sp(rhs.m_opaque_sp) {} -SBThreadPlan::SBThreadPlan (lldb::SBThread &sb_thread, const char *class_name) -{ - Thread *thread = sb_thread.get(); - if (thread) - m_opaque_sp.reset(new ThreadPlanPython(*thread, class_name)); +SBThreadPlan::SBThreadPlan(lldb::SBThread &sb_thread, const char *class_name) { + Thread *thread = sb_thread.get(); + if (thread) + m_opaque_sp.reset(new ThreadPlanPython(*thread, class_name)); } //---------------------------------------------------------------------- // Assignment operator //---------------------------------------------------------------------- -const lldb::SBThreadPlan & -SBThreadPlan::operator = (const SBThreadPlan &rhs) -{ - if (this != &rhs) - m_opaque_sp = rhs.m_opaque_sp; - return *this; +const lldb::SBThreadPlan &SBThreadPlan::operator=(const SBThreadPlan &rhs) { + if (this != &rhs) + m_opaque_sp = rhs.m_opaque_sp; + return *this; } //---------------------------------------------------------------------- // Destructor //---------------------------------------------------------------------- -SBThreadPlan::~SBThreadPlan() -{ -} +SBThreadPlan::~SBThreadPlan() {} -lldb_private::ThreadPlan * -SBThreadPlan::get() -{ - return m_opaque_sp.get(); -} +lldb_private::ThreadPlan *SBThreadPlan::get() { return m_opaque_sp.get(); } -bool -SBThreadPlan::IsValid() const -{ - return m_opaque_sp.get() != NULL; -} +bool SBThreadPlan::IsValid() const { return m_opaque_sp.get() != NULL; } -void -SBThreadPlan::Clear () -{ - m_opaque_sp.reset(); -} +void SBThreadPlan::Clear() { m_opaque_sp.reset(); } -lldb::StopReason -SBThreadPlan::GetStopReason() -{ - return eStopReasonNone; -} +lldb::StopReason SBThreadPlan::GetStopReason() { return eStopReasonNone; } -size_t -SBThreadPlan::GetStopReasonDataCount() -{ - return 0; -} +size_t SBThreadPlan::GetStopReasonDataCount() { return 0; } -uint64_t -SBThreadPlan::GetStopReasonDataAtIndex(uint32_t idx) -{ - return 0; -} +uint64_t SBThreadPlan::GetStopReasonDataAtIndex(uint32_t idx) { return 0; } -SBThread -SBThreadPlan::GetThread () const -{ - if (m_opaque_sp) - { - return SBThread(m_opaque_sp->GetThread().shared_from_this()); - } - else - return SBThread(); +SBThread SBThreadPlan::GetThread() const { + if (m_opaque_sp) { + return SBThread(m_opaque_sp->GetThread().shared_from_this()); + } else + return SBThread(); } -bool -SBThreadPlan::GetDescription (lldb::SBStream &description) const -{ - if (m_opaque_sp) - { - m_opaque_sp->GetDescription(description.get(), eDescriptionLevelFull); - } - else - { - description.Printf("Empty SBThreadPlan"); - } - return true; +bool SBThreadPlan::GetDescription(lldb::SBStream &description) const { + if (m_opaque_sp) { + m_opaque_sp->GetDescription(description.get(), eDescriptionLevelFull); + } else { + description.Printf("Empty SBThreadPlan"); + } + return true; } -void -SBThreadPlan::SetThreadPlan (const ThreadPlanSP& lldb_object_sp) -{ - m_opaque_sp = lldb_object_sp; +void SBThreadPlan::SetThreadPlan(const ThreadPlanSP &lldb_object_sp) { + m_opaque_sp = lldb_object_sp; } -void -SBThreadPlan::SetPlanComplete (bool success) -{ - if (m_opaque_sp) - m_opaque_sp->SetPlanComplete (success); +void SBThreadPlan::SetPlanComplete(bool success) { + if (m_opaque_sp) + m_opaque_sp->SetPlanComplete(success); } -bool -SBThreadPlan::IsPlanComplete() -{ - if (m_opaque_sp) - return m_opaque_sp->IsPlanComplete(); - else - return true; +bool SBThreadPlan::IsPlanComplete() { + if (m_opaque_sp) + return m_opaque_sp->IsPlanComplete(); + else + return true; } -bool -SBThreadPlan::IsPlanStale() -{ - if (m_opaque_sp) - return m_opaque_sp->IsPlanStale(); - else - return true; +bool SBThreadPlan::IsPlanStale() { + if (m_opaque_sp) + return m_opaque_sp->IsPlanStale(); + else + return true; } -bool -SBThreadPlan::IsValid() -{ - if (m_opaque_sp) - return m_opaque_sp->ValidatePlan(nullptr); - else - return false; +bool SBThreadPlan::IsValid() { + if (m_opaque_sp) + return m_opaque_sp->ValidatePlan(nullptr); + else + return false; } - // This section allows an SBThreadPlan to push another of the common types of plans... - // - // FIXME, you should only be able to queue thread plans from inside the methods of a - // Scripted Thread Plan. Need a way to enforce that. +// This section allows an SBThreadPlan to push another of the common types of +// plans... +// +// FIXME, you should only be able to queue thread plans from inside the methods +// of a +// Scripted Thread Plan. Need a way to enforce that. SBThreadPlan -SBThreadPlan::QueueThreadPlanForStepOverRange (SBAddress &sb_start_address, - lldb::addr_t size) -{ - if (m_opaque_sp) - { - Address *start_address = sb_start_address.get(); - if (!start_address) - { - return SBThreadPlan(); - } - - AddressRange range (*start_address, size); - SymbolContext sc; - start_address->CalculateSymbolContext(&sc); - return SBThreadPlan (m_opaque_sp->GetThread().QueueThreadPlanForStepOverRange (false, - range, - sc, - eAllThreads)); - } - else - { - return SBThreadPlan(); +SBThreadPlan::QueueThreadPlanForStepOverRange(SBAddress &sb_start_address, + lldb::addr_t size) { + if (m_opaque_sp) { + Address *start_address = sb_start_address.get(); + if (!start_address) { + return SBThreadPlan(); } + + AddressRange range(*start_address, size); + SymbolContext sc; + start_address->CalculateSymbolContext(&sc); + return SBThreadPlan( + m_opaque_sp->GetThread().QueueThreadPlanForStepOverRange( + false, range, sc, eAllThreads)); + } else { + return SBThreadPlan(); + } } SBThreadPlan -SBThreadPlan::QueueThreadPlanForStepInRange (SBAddress &sb_start_address, - lldb::addr_t size) -{ - if (m_opaque_sp) - { - Address *start_address = sb_start_address.get(); - if (!start_address) - { - return SBThreadPlan(); - } - - AddressRange range (*start_address, size); - SymbolContext sc; - start_address->CalculateSymbolContext(&sc); - return SBThreadPlan (m_opaque_sp->GetThread().QueueThreadPlanForStepInRange (false, - range, - sc, - NULL, - eAllThreads)); - } - else - { - return SBThreadPlan(); +SBThreadPlan::QueueThreadPlanForStepInRange(SBAddress &sb_start_address, + lldb::addr_t size) { + if (m_opaque_sp) { + Address *start_address = sb_start_address.get(); + if (!start_address) { + return SBThreadPlan(); } + + AddressRange range(*start_address, size); + SymbolContext sc; + start_address->CalculateSymbolContext(&sc); + return SBThreadPlan(m_opaque_sp->GetThread().QueueThreadPlanForStepInRange( + false, range, sc, NULL, eAllThreads)); + } else { + return SBThreadPlan(); + } } SBThreadPlan -SBThreadPlan::QueueThreadPlanForStepOut (uint32_t frame_idx_to_step_to, bool first_insn) -{ - if (m_opaque_sp) - { - SymbolContext sc; - sc = m_opaque_sp->GetThread().GetStackFrameAtIndex(0)->GetSymbolContext(lldb::eSymbolContextEverything); - return SBThreadPlan (m_opaque_sp->GetThread().QueueThreadPlanForStepOut (false, - &sc, - first_insn, - false, - eVoteYes, - eVoteNoOpinion, - frame_idx_to_step_to)); - } - else - { - return SBThreadPlan(); - } +SBThreadPlan::QueueThreadPlanForStepOut(uint32_t frame_idx_to_step_to, + bool first_insn) { + if (m_opaque_sp) { + SymbolContext sc; + sc = m_opaque_sp->GetThread().GetStackFrameAtIndex(0)->GetSymbolContext( + lldb::eSymbolContextEverything); + return SBThreadPlan(m_opaque_sp->GetThread().QueueThreadPlanForStepOut( + false, &sc, first_insn, false, eVoteYes, eVoteNoOpinion, + frame_idx_to_step_to)); + } else { + return SBThreadPlan(); + } } SBThreadPlan -SBThreadPlan::QueueThreadPlanForRunToAddress (SBAddress sb_address) -{ - if (m_opaque_sp) - { - Address *address = sb_address.get(); - if (!address) - return SBThreadPlan(); - - return SBThreadPlan (m_opaque_sp->GetThread().QueueThreadPlanForRunToAddress (false, - *address, - false)); - } - else - { - return SBThreadPlan(); - } +SBThreadPlan::QueueThreadPlanForRunToAddress(SBAddress sb_address) { + if (m_opaque_sp) { + Address *address = sb_address.get(); + if (!address) + return SBThreadPlan(); + + return SBThreadPlan(m_opaque_sp->GetThread().QueueThreadPlanForRunToAddress( + false, *address, false)); + } else { + return SBThreadPlan(); + } } - - |