LLDB API Documentation

- Main Page
- Namespaces
- Classes
- Files

- File List

SBThreadPlan.h
Go to the documentation of this file.
1 //===-- SBThread.h ----------------------------------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LLDB_SBThreadPlan_h_
11 #define LLDB_SBThreadPlan_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 #include <stdio.h>
16
17 namespace lldb {
18
19 class LLDB_API SBThreadPlan {
20
21 friend class lldb_private::ThreadPlan;
22
23 public:
24 SBThreadPlan();
25
26 SBThreadPlan(const lldb::SBThreadPlan &threadPlan);
27
28 SBThreadPlan(const lldb::ThreadPlanSP &lldb_object_sp);
29
30 SBThreadPlan(lldb::SBThread &thread, const char *class_name);
31
32 ~SBThreadPlan();
33
34 bool IsValid() const;
35
36 void Clear();
37
38 lldb::StopReason GetStopReason();
39
40 /// Get the number of words associated with the stop reason.
41 /// See also GetStopReasonDataAtIndex().
42 size_t GetStopReasonDataCount();
43
44 //--------------------------------------------------------------------------
45 /// Get information associated with a stop reason.
46 ///
47 /// Breakpoint stop reasons will have data that consists of pairs of
48 /// breakpoint IDs followed by the breakpoint location IDs (they always come
49 /// in pairs).
50 ///
51 /// Stop Reason Count Data Type
52 /// ======================== ===== =========================================
53 /// eStopReasonNone 0
54 /// eStopReasonTrace 0
55 /// eStopReasonBreakpoint N duple: {breakpoint id, location id}
56 /// eStopReasonWatchpoint 1 watchpoint id
57 /// eStopReasonSignal 1 unix signal number
58 /// eStopReasonException N exception data
59 /// eStopReasonExec 0
60 /// eStopReasonPlanComplete 0
61 //--------------------------------------------------------------------------
62 uint64_t GetStopReasonDataAtIndex(uint32_t idx);
63
64 SBThread GetThread() const;
65
66 const lldb::SBThreadPlan &operator=(const lldb::SBThreadPlan &rhs);
67
68 bool GetDescription(lldb::SBStream &description) const;
69
70 void SetPlanComplete(bool success);
71
72 bool IsPlanComplete();
73
74 bool IsPlanStale();
75
76 bool IsValid();
77
78 // This section allows an SBThreadPlan to push another of the common types of
79 // plans...
80 SBThreadPlan QueueThreadPlanForStepOverRange(SBAddress &start_address,
81 lldb::addr_t range_size);
82
83 SBThreadPlan QueueThreadPlanForStepInRange(SBAddress &start_address,
84 lldb::addr_t range_size);
85
86 SBThreadPlan QueueThreadPlanForStepOut(uint32_t frame_idx_to_step_to,
87 bool first_insn = false);
88
89 SBThreadPlan QueueThreadPlanForRunToAddress(SBAddress address);
90
91 #ifndef SWIG
92 lldb_private::ThreadPlan *get();
93 #endif
94
95 protected:
96 friend class SBBreakpoint;
97 friend class SBBreakpointLocation;
98 friend class SBFrame;
99 friend class SBProcess;
100 friend class SBDebugger;
101 friend class SBValue;
102 friend class lldb_private::QueueImpl;
103 friend class SBQueueItem;
104
105 #ifndef SWIG
106 void SetThreadPlan(const lldb::ThreadPlanSP &lldb_object_sp);
107 #endif
108
109 private:
110 lldb::ThreadPlanSP m_opaque_sp;
111 };
112
113 } // namespace lldb
114
115 #endif // LLDB_SBThreadPlan_h_
lldb::SBThread
Definition: SBThread.h:21
lldb::SBBreakpoint
Definition: SBBreakpoint.h:17
lldb::SBFrame
Definition: SBFrame.h:18
SBDefines.h
lldb::SBValue
Definition: SBValue.h:22
lldb::SBThreadPlan
class LLDB_API SBThreadPlan
Definition: SBDefines.h:81
lldb::SBAddress
Definition: SBAddress.h:18
lldb::SBDebugger
Definition: SBDebugger.h:35
lldb::SBProcess
Definition: SBProcess.h:23
lldb::SBQueueItem
Definition: SBQueueItem.h:18
lldb::SBThreadPlan
Definition: SBThreadPlan.h:19
lldb::SBStream
Definition: SBStream.h:19
lldb::SBBreakpointLocation
Definition: SBBreakpointLocation.h:18