diff options
Diffstat (limited to 'lldb/bindings/interface/SBThreadPlan.i')
-rw-r--r-- | lldb/bindings/interface/SBThreadPlan.i | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/lldb/bindings/interface/SBThreadPlan.i b/lldb/bindings/interface/SBThreadPlan.i new file mode 100644 index 000000000000..36131d529b7b --- /dev/null +++ b/lldb/bindings/interface/SBThreadPlan.i @@ -0,0 +1,137 @@ +//===-- SBThread.h ----------------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SBThreadPlan_h_ +#define LLDB_SBThreadPlan_h_ + +#include "lldb/API/SBDefines.h" + +#include <stdio.h> + +namespace lldb { + +%feature("docstring", +"Represents a plan for the execution control of a given thread. + +See also SBThread and SBFrame." +) SBThread; + +class SBThreadPlan +{ + +friend class lldb_private::ThreadPlan; + +public: + SBThreadPlan (); + + SBThreadPlan (const lldb::SBThreadPlan &threadPlan); + + SBThreadPlan (const lldb::ThreadPlanSP& lldb_object_sp); + + SBThreadPlan (lldb::SBThread &thread, const char *class_name); + + ~SBThreadPlan (); + + bool + IsValid(); + + bool + IsValid() const; + + explicit operator bool() const; + + void + Clear (); + + lldb::StopReason + GetStopReason(); + + %feature("docstring", " + Get the number of words associated with the stop reason. + See also GetStopReasonDataAtIndex().") GetStopReasonDataCount; + size_t + GetStopReasonDataCount(); + + %feature("docstring", " + Get information associated with a stop reason. + + Breakpoint stop reasons will have data that consists of pairs of + breakpoint IDs followed by the breakpoint location IDs (they always come + in pairs). + + Stop Reason Count Data Type + ======================== ===== ========================================= + eStopReasonNone 0 + eStopReasonTrace 0 + eStopReasonBreakpoint N duple: {breakpoint id, location id} + eStopReasonWatchpoint 1 watchpoint id + eStopReasonSignal 1 unix signal number + eStopReasonException N exception data + eStopReasonExec 0 + eStopReasonPlanComplete 0") GetStopReasonDataAtIndex; + uint64_t + GetStopReasonDataAtIndex(uint32_t idx); + + SBThread + GetThread () const; + + bool + GetDescription (lldb::SBStream &description) const; + + void + SetPlanComplete (bool success); + + bool + IsPlanComplete(); + + bool + IsPlanStale(); + + SBThreadPlan + QueueThreadPlanForStepOverRange (SBAddress &start_address, + lldb::addr_t range_size); + + SBThreadPlan + QueueThreadPlanForStepInRange (SBAddress &start_address, + lldb::addr_t range_size); + + SBThreadPlan + QueueThreadPlanForStepOut (uint32_t frame_idx_to_step_to, bool first_insn = false); + + SBThreadPlan + QueueThreadPlanForRunToAddress (SBAddress address); + + SBThreadPlan + QueueThreadPlanForStepScripted(const char *script_class_name); + + SBThreadPlan + QueueThreadPlanForStepScripted(const char *script_class_name, + SBError &error); + SBThreadPlan + QueueThreadPlanForStepScripted(const char *script_class_name, + SBStructuredData &args_data, + SBError &error); + + +protected: + friend class SBBreakpoint; + friend class SBBreakpointLocation; + friend class SBFrame; + friend class SBProcess; + friend class SBDebugger; + friend class SBValue; + friend class lldb_private::QueueImpl; + friend class SBQueueItem; + +private: + lldb::ThreadPlanSP m_opaque_sp; +}; + +} // namespace lldb + +#endif // LLDB_SBThreadPlan_h_ |