124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBLineEntry.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 LLDB_SBLineEntry_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_SBLineEntry_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 135f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBDefines.h" 145f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBAddress.h" 155f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBFileSpec.h" 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb { 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBLineEntry 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBLineEntry (); 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBLineEntry (const lldb::SBLineEntry &rhs); 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~SBLineEntry (); 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const lldb::SBLineEntry & 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator = (const lldb::SBLineEntry &rhs); 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBAddress 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetStartAddress () const; 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBAddress 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetEndAddress () const; 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsValid () const; 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBFileSpec 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetFileSpec () const; 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetLine () const; 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetColumn () const; 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5023b8abbe214c252028f6e09f79169529c846409dGreg Clayton void 5123b8abbe214c252028f6e09f79169529c846409dGreg Clayton SetFileSpec (lldb::SBFileSpec filespec); 5223b8abbe214c252028f6e09f79169529c846409dGreg Clayton 5323b8abbe214c252028f6e09f79169529c846409dGreg Clayton void 5423b8abbe214c252028f6e09f79169529c846409dGreg Clayton SetLine (uint32_t line); 5523b8abbe214c252028f6e09f79169529c846409dGreg Clayton 5623b8abbe214c252028f6e09f79169529c846409dGreg Clayton void 5723b8abbe214c252028f6e09f79169529c846409dGreg Clayton SetColumn (uint32_t column); 5823b8abbe214c252028f6e09f79169529c846409dGreg Clayton 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator == (const lldb::SBLineEntry &rhs) const; 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator != (const lldb::SBLineEntry &rhs) const; 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6598f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice bool 6698f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice GetDescription (lldb::SBStream &description); 6798f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice 6861ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Ticeprotected: 6961ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice 7061ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice lldb_private::LineEntry * 7161ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice get (); 7261ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice 7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 74c51ffbf896e398ada5f7e89b2fa5aec6f2224f09Greg Clayton friend class SBAddress; 7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBCompileUnit; 7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBFrame; 7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBSymbolContext; 7824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const lldb_private::LineEntry * 8024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator->() const; 8124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8223b8abbe214c252028f6e09f79169529c846409dGreg Clayton lldb_private::LineEntry & 8323b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref(); 8423b8abbe214c252028f6e09f79169529c846409dGreg Clayton 8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const lldb_private::LineEntry & 8623b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref() const; 8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBLineEntry (const lldb_private::LineEntry *lldb_object_ptr); 8924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 9124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetLineEntry (const lldb_private::LineEntry &lldb_object_ref); 9224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 93102b2c2681c9a830afe25bfea35557421905e42cGreg Clayton std::unique_ptr<lldb_private::LineEntry> m_opaque_ap; 9424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 9524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb 9824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // LLDB_SBLineEntry_h_ 100