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