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_SBBreakpointLocation_h_
10 #define LLDB_SBBreakpointLocation_h_
11 
12 #include "lldb/API/SBBreakpoint.h"
13 #include "lldb/API/SBDefines.h"
14 
15 namespace lldb {
16 
17 class LLDB_API SBBreakpointLocation {
18 public:
19   SBBreakpointLocation();
20 
21   SBBreakpointLocation(const lldb::SBBreakpointLocation &rhs);
22 
23   ~SBBreakpointLocation();
24 
25   const lldb::SBBreakpointLocation &
26   operator=(const lldb::SBBreakpointLocation &rhs);
27 
28   break_id_t GetID();
29 
30   explicit operator bool() const;
31 
32   bool IsValid() const;
33 
34   lldb::SBAddress GetAddress();
35 
36   lldb::addr_t GetLoadAddress();
37 
38   void SetEnabled(bool enabled);
39 
40   bool IsEnabled();
41 
42   uint32_t GetHitCount();
43 
44   uint32_t GetIgnoreCount();
45 
46   void SetIgnoreCount(uint32_t n);
47 
48   void SetCondition(const char *condition);
49 
50   const char *GetCondition();
51 
52   void SetAutoContinue(bool auto_continue);
53 
54   bool GetAutoContinue();
55 
56   void SetScriptCallbackFunction(const char *callback_function_name);
57 
58   SBError SetScriptCallbackBody(const char *script_body_text);
59 
60   void SetCommandLineCommands(SBStringList &commands);
61 
62   bool GetCommandLineCommands(SBStringList &commands);
63 
64   void SetThreadID(lldb::tid_t sb_thread_id);
65 
66   lldb::tid_t GetThreadID();
67 
68   void SetThreadIndex(uint32_t index);
69 
70   uint32_t GetThreadIndex() const;
71 
72   void SetThreadName(const char *thread_name);
73 
74   const char *GetThreadName() const;
75 
76   void SetQueueName(const char *queue_name);
77 
78   const char *GetQueueName() const;
79 
80   bool IsResolved();
81 
82   bool GetDescription(lldb::SBStream &description, DescriptionLevel level);
83 
84   SBBreakpoint GetBreakpoint();
85 
86   SBBreakpointLocation(const lldb::BreakpointLocationSP &break_loc_sp);
87 
88 private:
89   friend class SBBreakpoint;
90   friend class SBBreakpointCallbackBaton;
91 
92   void SetLocation(const lldb::BreakpointLocationSP &break_loc_sp);
93   BreakpointLocationSP GetSP() const;
94 
95   lldb::BreakpointLocationWP m_opaque_wp;
96 };
97 
98 } // namespace lldb
99 
100 #endif // LLDB_SBBreakpointLocation_h_
101