1 | //===-- SBBreakpointLocation.h ----------------------------------*- C++ -*-===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #ifndef LLDB_API_SBBREAKPOINTLOCATION_H |
10 | #define LLDB_API_SBBREAKPOINTLOCATION_H |
11 | |
12 | #include "lldb/API/SBBreakpoint.h" |
13 | #include "lldb/API/SBDefines.h" |
14 | |
15 | namespace lldb_private { |
16 | namespace python { |
17 | class SWIGBridge; |
18 | } |
19 | namespace lua { |
20 | class SWIGBridge; |
21 | } |
22 | } // namespace lldb_private |
23 | |
24 | namespace lldb { |
25 | |
26 | class LLDB_API SBBreakpointLocation { |
27 | public: |
28 | SBBreakpointLocation(); |
29 | |
30 | SBBreakpointLocation(const lldb::SBBreakpointLocation &rhs); |
31 | |
32 | ~SBBreakpointLocation(); |
33 | |
34 | const lldb::SBBreakpointLocation & |
35 | operator=(const lldb::SBBreakpointLocation &rhs); |
36 | |
37 | break_id_t GetID(); |
38 | |
39 | explicit operator bool() const; |
40 | |
41 | bool IsValid() const; |
42 | |
43 | lldb::SBAddress GetAddress(); |
44 | |
45 | lldb::addr_t GetLoadAddress(); |
46 | |
47 | void SetEnabled(bool enabled); |
48 | |
49 | bool IsEnabled(); |
50 | |
51 | uint32_t GetHitCount(); |
52 | |
53 | uint32_t GetIgnoreCount(); |
54 | |
55 | void SetIgnoreCount(uint32_t n); |
56 | |
57 | void SetCondition(const char *condition); |
58 | |
59 | const char *GetCondition(); |
60 | |
61 | void SetAutoContinue(bool auto_continue); |
62 | |
63 | bool GetAutoContinue(); |
64 | |
65 | #ifndef SWIG |
66 | void SetCallback(SBBreakpointHitCallback callback, void *baton); |
67 | #endif |
68 | |
69 | void SetScriptCallbackFunction(const char *callback_function_name); |
70 | |
71 | SBError SetScriptCallbackFunction(const char *callback_function_name, |
72 | lldb::SBStructuredData &); |
73 | |
74 | SBError SetScriptCallbackBody(const char *script_body_text); |
75 | |
76 | void SetCommandLineCommands(lldb::SBStringList &commands); |
77 | |
78 | bool GetCommandLineCommands(lldb::SBStringList &commands); |
79 | |
80 | void SetThreadID(lldb::tid_t sb_thread_id); |
81 | |
82 | lldb::tid_t GetThreadID(); |
83 | |
84 | void SetThreadIndex(uint32_t index); |
85 | |
86 | uint32_t GetThreadIndex() const; |
87 | |
88 | void SetThreadName(const char *thread_name); |
89 | |
90 | const char *GetThreadName() const; |
91 | |
92 | void SetQueueName(const char *queue_name); |
93 | |
94 | const char *GetQueueName() const; |
95 | |
96 | bool IsResolved(); |
97 | |
98 | bool GetDescription(lldb::SBStream &description, DescriptionLevel level); |
99 | |
100 | SBBreakpoint GetBreakpoint(); |
101 | |
102 | protected: |
103 | friend class lldb_private::python::SWIGBridge; |
104 | friend class lldb_private::lua::SWIGBridge; |
105 | SBBreakpointLocation(const lldb::BreakpointLocationSP &break_loc_sp); |
106 | |
107 | private: |
108 | friend class SBBreakpoint; |
109 | friend class SBBreakpointCallbackBaton; |
110 | |
111 | void SetLocation(const lldb::BreakpointLocationSP &break_loc_sp); |
112 | BreakpointLocationSP GetSP() const; |
113 | |
114 | lldb::BreakpointLocationWP m_opaque_wp; |
115 | }; |
116 | |
117 | } // namespace lldb |
118 | |
119 | #endif // LLDB_API_SBBREAKPOINTLOCATION_H |
120 | |