124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- BreakpointID.h ------------------------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef liblldb_BreakpointID_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define liblldb_BreakpointID_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// C Includes 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// C++ Includes 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Other libraries and framework includes 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Project includes 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/lldb-private.h" 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb_private { 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// class BreakpointID 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BreakpointID 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointID (lldb::break_id_t bp_id = LLDB_INVALID_BREAK_ID, 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::break_id_t loc_id = LLDB_INVALID_BREAK_ID); 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~BreakpointID (); 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::break_id_t 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetBreakpointID () 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return m_break_id; 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::break_id_t 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetLocationID () 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return m_location_id; 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetID (lldb::break_id_t bp_id, lldb::break_id_t loc_id) 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner m_break_id = bp_id; 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner m_location_id = loc_id; 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetBreakpointID (lldb::break_id_t bp_id) 5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner m_break_id = bp_id; 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetBreakpointLocationID (lldb::break_id_t loc_id) 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner m_location_id = loc_id; 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetDescription (Stream *s, lldb::DescriptionLevel level); 6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner static bool 7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsRangeIdentifier (const char *str); 7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner static bool 7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsValidIDExpression (const char *str); 7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner static const char *g_range_specifiers[]; 7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 7924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// Takes an input string containing the description of a breakpoint or breakpoint and location 8024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// and returns the breakpoint ID and the breakpoint location id. 8124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// 8224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// @param[in] input 8324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// A string containing JUST the breakpoint description. 8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// @param[out] break_id 8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// This is the break id. 8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// @param[out] break_loc_id 8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// This is breakpoint location id, or LLDB_INVALID_BREAK_ID is no location was specified. 8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// @return 8924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// \b true if the call was able to extract a breakpoint location from the string. \b false otherwise. 9024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 9124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner static bool 9224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ParseCanonicalReference (const char *input, lldb::break_id_t *break_id, lldb::break_id_t *break_loc_id); 9324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 9624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// Takes a breakpoint ID and the breakpoint location id and returns 9724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// a string containing the canonical description for the breakpoint 9824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// or breakpoint location. 9924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// 10024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// @param[out] break_id 10124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// This is the break id. 10224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// 10324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// @param[out] break_loc_id 10424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// This is breakpoint location id, or LLDB_INVALID_BREAK_ID is no 10524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// location is to be specified. 10624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 10724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner static void 10824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetCanonicalReference (Stream *s, lldb::break_id_t break_id, lldb::break_id_t break_loc_id); 10924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 11124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::break_id_t m_break_id; 11224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::break_id_t m_location_id; 11324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 11424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb_private 11624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // liblldb_BreakpointID_h_ 118