1 //===-- BreakpointID.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 liblldb_BreakpointID_h_ 11 #define liblldb_BreakpointID_h_ 12 13 // C Includes 14 // C++ Includes 15 // Other libraries and framework includes 16 // Project includes 17 18 #include "lldb/lldb-private.h" 19 20 namespace lldb_private { 21 22 //---------------------------------------------------------------------- 23 // class BreakpointID 24 //---------------------------------------------------------------------- 25 26 class BreakpointID 27 { 28 public: 29 30 BreakpointID (lldb::break_id_t bp_id = LLDB_INVALID_BREAK_ID, 31 lldb::break_id_t loc_id = LLDB_INVALID_BREAK_ID); 32 33 virtual 34 ~BreakpointID (); 35 36 lldb::break_id_t GetBreakpointID()37 GetBreakpointID () 38 { 39 return m_break_id; 40 } 41 42 lldb::break_id_t GetLocationID()43 GetLocationID () 44 { 45 return m_location_id; 46 } 47 48 void SetID(lldb::break_id_t bp_id,lldb::break_id_t loc_id)49 SetID (lldb::break_id_t bp_id, lldb::break_id_t loc_id) 50 { 51 m_break_id = bp_id; 52 m_location_id = loc_id; 53 } 54 55 void SetBreakpointID(lldb::break_id_t bp_id)56 SetBreakpointID (lldb::break_id_t bp_id) 57 { 58 m_break_id = bp_id; 59 } 60 61 void SetBreakpointLocationID(lldb::break_id_t loc_id)62 SetBreakpointLocationID (lldb::break_id_t loc_id) 63 { 64 m_location_id = loc_id; 65 } 66 67 void 68 GetDescription (Stream *s, lldb::DescriptionLevel level); 69 70 static bool 71 IsRangeIdentifier (const char *str); 72 73 static bool 74 IsValidIDExpression (const char *str); 75 76 static const char *g_range_specifiers[]; 77 78 //------------------------------------------------------------------ 79 /// Takes an input string containing the description of a breakpoint or breakpoint and location 80 /// and returns the breakpoint ID and the breakpoint location id. 81 /// 82 /// @param[in] input 83 /// A string containing JUST the breakpoint description. 84 /// @param[out] break_id 85 /// This is the break id. 86 /// @param[out] break_loc_id 87 /// This is breakpoint location id, or LLDB_INVALID_BREAK_ID is no location was specified. 88 /// @return 89 /// \b true if the call was able to extract a breakpoint location from the string. \b false otherwise. 90 //------------------------------------------------------------------ 91 static bool 92 ParseCanonicalReference (const char *input, lldb::break_id_t *break_id, lldb::break_id_t *break_loc_id); 93 94 95 //------------------------------------------------------------------ 96 /// Takes a breakpoint ID and the breakpoint location id and returns 97 /// a string containing the canonical description for the breakpoint 98 /// or breakpoint location. 99 /// 100 /// @param[out] break_id 101 /// This is the break id. 102 /// 103 /// @param[out] break_loc_id 104 /// This is breakpoint location id, or LLDB_INVALID_BREAK_ID is no 105 /// location is to be specified. 106 //------------------------------------------------------------------ 107 static void 108 GetCanonicalReference (Stream *s, lldb::break_id_t break_id, lldb::break_id_t break_loc_id); 109 110 protected: 111 lldb::break_id_t m_break_id; 112 lldb::break_id_t m_location_id; 113 }; 114 115 } // namespace lldb_private 116 117 #endif // liblldb_BreakpointID_h_ 118