1 //===-- SBThread.h ----------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBThreadPlan_h_
11 #define LLDB_SBThreadPlan_h_
13 #include "lldb/API/SBDefines.h"
19 class LLDB_API SBThreadPlan
22 friend class lldb_private::ThreadPlan;
27 SBThreadPlan (const lldb::SBThreadPlan &threadPlan);
29 SBThreadPlan (const lldb::ThreadPlanSP& lldb_object_sp);
31 SBThreadPlan (lldb::SBThread &thread, const char *class_name);
44 /// Get the number of words associated with the stop reason.
45 /// See also GetStopReasonDataAtIndex().
47 GetStopReasonDataCount();
49 //--------------------------------------------------------------------------
50 /// Get information associated with a stop reason.
52 /// Breakpoint stop reasons will have data that consists of pairs of
53 /// breakpoint IDs followed by the breakpoint location IDs (they always come
56 /// Stop Reason Count Data Type
57 /// ======================== ===== =========================================
59 /// eStopReasonTrace 0
60 /// eStopReasonBreakpoint N duple: {breakpoint id, location id}
61 /// eStopReasonWatchpoint 1 watchpoint id
62 /// eStopReasonSignal 1 unix signal number
63 /// eStopReasonException N exception data
65 /// eStopReasonPlanComplete 0
66 //--------------------------------------------------------------------------
68 GetStopReasonDataAtIndex(uint32_t idx);
73 const lldb::SBThreadPlan &
74 operator = (const lldb::SBThreadPlan &rhs);
77 GetDescription (lldb::SBStream &description) const;
80 SetPlanComplete (bool success);
88 // This section allows an SBThreadPlan to push another of the common types of plans...
90 QueueThreadPlanForStepOverRange (SBAddress &start_address,
91 lldb::addr_t range_size);
94 QueueThreadPlanForStepInRange (SBAddress &start_address,
95 lldb::addr_t range_size);
98 QueueThreadPlanForStepOut (uint32_t frame_idx_to_step_to, bool first_insn = false);
101 QueueThreadPlanForRunToAddress (SBAddress address);
104 lldb_private::ThreadPlan *
109 friend class SBBreakpoint;
110 friend class SBBreakpointLocation;
111 friend class SBFrame;
112 friend class SBProcess;
113 friend class SBDebugger;
114 friend class SBValue;
115 friend class lldb_private::QueueImpl;
116 friend class SBQueueItem;
120 SetThreadPlan (const lldb::ThreadPlanSP& lldb_object_sp);
124 lldb::ThreadPlanSP m_opaque_sp;
129 #endif // LLDB_SBThreadPlan_h_