124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBLineEntry.cpp -----------------------------------------*- 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 10ec2d9787bed36e9eda6eac1996c7bed76c8d3da4Stephen Wilson#include <limits.h> 11ec2d9787bed36e9eda6eac1996c7bed76c8d3da4Stephen Wilson 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/API/SBLineEntry.h" 1398f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice#include "lldb/API/SBStream.h" 1449ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton#include "lldb/Core/StreamString.h" 157826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice#include "lldb/Core/Log.h" 1649ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton#include "lldb/Symbol/LineEntry.h" 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerusing namespace lldb; 197826c8894803dc729f29789ebc038956a94d3e7aCaroline Ticeusing namespace lldb_private; 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::SBLineEntry () : 2363094e0bb161580564954dee512955c1c79d3476Greg Clayton m_opaque_ap () 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::SBLineEntry (const SBLineEntry &rhs) : 2863094e0bb161580564954dee512955c1c79d3476Greg Clayton m_opaque_ap () 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner if (rhs.IsValid()) 3123b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref() = rhs.ref(); 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::SBLineEntry (const lldb_private::LineEntry *lldb_object_ptr) : 3563094e0bb161580564954dee512955c1c79d3476Greg Clayton m_opaque_ap () 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner if (lldb_object_ptr) 3823b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref() = *lldb_object_ptr; 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerconst SBLineEntry & 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::operator = (const SBLineEntry &rhs) 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 4423b8abbe214c252028f6e09f79169529c846409dGreg Clayton if (this != &rhs) 4523b8abbe214c252028f6e09f79169529c846409dGreg Clayton { 4623b8abbe214c252028f6e09f79169529c846409dGreg Clayton if (rhs.IsValid()) 4723b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref() = rhs.ref(); 4823b8abbe214c252028f6e09f79169529c846409dGreg Clayton else 4923b8abbe214c252028f6e09f79169529c846409dGreg Clayton m_opaque_ap.reset(); 5023b8abbe214c252028f6e09f79169529c846409dGreg Clayton } 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return *this; 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnervoid 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::SetLineEntry (const lldb_private::LineEntry &lldb_object_ref) 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 5723b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref() = lldb_object_ref; 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::~SBLineEntry () 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBAddress 6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::GetStartAddress () const 6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 697826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBAddress sb_address; 7163094e0bb161580564954dee512955c1c79d3476Greg Clayton if (m_opaque_ap.get()) 7263094e0bb161580564954dee512955c1c79d3476Greg Clayton sb_address.SetAddress(&m_opaque_ap->range.GetBaseAddress()); 737826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 74952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); 757826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice if (log) 767826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice { 7749ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton StreamString sstr; 7869c540dc5b2b498e4bb9a4cb8d7cd4e3c993bbbcGreg Clayton const Address *addr = sb_address.get(); 7969c540dc5b2b498e4bb9a4cb8d7cd4e3c993bbbcGreg Clayton if (addr) 8069c540dc5b2b498e4bb9a4cb8d7cd4e3c993bbbcGreg Clayton addr->Dump (&sstr, NULL, Address::DumpStyleModuleWithFileAddress, Address::DumpStyleInvalid, 4); 8149ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton log->Printf ("SBLineEntry(%p)::GetStartAddress () => SBAddress (%p): %s", 8249ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton m_opaque_ap.get(), sb_address.get(), sstr.GetData()); 837826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice } 847826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return sb_address; 8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBAddress 8924943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::GetEndAddress () const 9024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 9124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBAddress sb_address; 9263094e0bb161580564954dee512955c1c79d3476Greg Clayton if (m_opaque_ap.get()) 9324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 9463094e0bb161580564954dee512955c1c79d3476Greg Clayton sb_address.SetAddress(&m_opaque_ap->range.GetBaseAddress()); 9563094e0bb161580564954dee512955c1c79d3476Greg Clayton sb_address.OffsetAddress(m_opaque_ap->range.GetByteSize()); 9624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 97952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); 9849ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton if (log) 9949ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton { 10049ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton StreamString sstr; 10169c540dc5b2b498e4bb9a4cb8d7cd4e3c993bbbcGreg Clayton const Address *addr = sb_address.get(); 10269c540dc5b2b498e4bb9a4cb8d7cd4e3c993bbbcGreg Clayton if (addr) 10369c540dc5b2b498e4bb9a4cb8d7cd4e3c993bbbcGreg Clayton addr->Dump (&sstr, NULL, Address::DumpStyleModuleWithFileAddress, Address::DumpStyleInvalid, 4); 10449ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton log->Printf ("SBLineEntry(%p)::GetEndAddress () => SBAddress (%p): %s", 10549ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton m_opaque_ap.get(), sb_address.get(), sstr.GetData()); 10649ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton } 10724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return sb_address; 10824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 10924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerbool 11124943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::IsValid () const 11224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 1133a70d5d2f090682dda624de23dbb6e8d580d08f0Greg Clayton return m_opaque_ap.get() && m_opaque_ap->IsValid(); 11424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 11524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11724943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBFileSpec 11824943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::GetFileSpec () const 11924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 120952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); 1217826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 12224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBFileSpec sb_file_spec; 12363094e0bb161580564954dee512955c1c79d3476Greg Clayton if (m_opaque_ap.get() && m_opaque_ap->file) 12463094e0bb161580564954dee512955c1c79d3476Greg Clayton sb_file_spec.SetFileSpec(m_opaque_ap->file); 1257826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 1267826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice if (log) 1277826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice { 1287826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice SBStream sstr; 1297826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice sb_file_spec.GetDescription (sstr); 13049ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton log->Printf ("SBLineEntry(%p)::GetFileSpec () => SBFileSpec(%p): %s", m_opaque_ap.get(), 13161ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice sb_file_spec.get(), sstr.GetData()); 1327826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice } 1337826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 13424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return sb_file_spec; 13524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 13624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 13724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattneruint32_t 13824943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::GetLine () const 13924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 140952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); 1417826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 1427826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice uint32_t line = 0; 14363094e0bb161580564954dee512955c1c79d3476Greg Clayton if (m_opaque_ap.get()) 1447826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice line = m_opaque_ap->line; 1457826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 1467826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice if (log) 14749ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton log->Printf ("SBLineEntry(%p)::GetLine () => %u", m_opaque_ap.get(), line); 1487826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice 1497826c8894803dc729f29789ebc038956a94d3e7aCaroline Tice return line; 15024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 15124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 15224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 15324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattneruint32_t 15424943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::GetColumn () const 15524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 15663094e0bb161580564954dee512955c1c79d3476Greg Clayton if (m_opaque_ap.get()) 15763094e0bb161580564954dee512955c1c79d3476Greg Clayton return m_opaque_ap->column; 15824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return 0; 15924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 16024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 16123b8abbe214c252028f6e09f79169529c846409dGreg Claytonvoid 16223b8abbe214c252028f6e09f79169529c846409dGreg ClaytonSBLineEntry::SetFileSpec (lldb::SBFileSpec filespec) 16323b8abbe214c252028f6e09f79169529c846409dGreg Clayton{ 16423b8abbe214c252028f6e09f79169529c846409dGreg Clayton if (filespec.IsValid()) 16523b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref().file = filespec.ref(); 16623b8abbe214c252028f6e09f79169529c846409dGreg Clayton else 16723b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref().file.Clear(); 16823b8abbe214c252028f6e09f79169529c846409dGreg Clayton} 16923b8abbe214c252028f6e09f79169529c846409dGreg Claytonvoid 17023b8abbe214c252028f6e09f79169529c846409dGreg ClaytonSBLineEntry::SetLine (uint32_t line) 17123b8abbe214c252028f6e09f79169529c846409dGreg Clayton{ 17223b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref().line = line; 17323b8abbe214c252028f6e09f79169529c846409dGreg Clayton} 17423b8abbe214c252028f6e09f79169529c846409dGreg Clayton 17523b8abbe214c252028f6e09f79169529c846409dGreg Claytonvoid 17623b8abbe214c252028f6e09f79169529c846409dGreg ClaytonSBLineEntry::SetColumn (uint32_t column) 17723b8abbe214c252028f6e09f79169529c846409dGreg Clayton{ 17823b8abbe214c252028f6e09f79169529c846409dGreg Clayton ref().line = column; 17923b8abbe214c252028f6e09f79169529c846409dGreg Clayton} 18023b8abbe214c252028f6e09f79169529c846409dGreg Clayton 18123b8abbe214c252028f6e09f79169529c846409dGreg Clayton 18223b8abbe214c252028f6e09f79169529c846409dGreg Clayton 18324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerbool 18424943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::operator == (const SBLineEntry &rhs) const 18524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 18663094e0bb161580564954dee512955c1c79d3476Greg Clayton lldb_private::LineEntry *lhs_ptr = m_opaque_ap.get(); 18763094e0bb161580564954dee512955c1c79d3476Greg Clayton lldb_private::LineEntry *rhs_ptr = rhs.m_opaque_ap.get(); 18824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 18924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner if (lhs_ptr && rhs_ptr) 19024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return lldb_private::LineEntry::Compare (*lhs_ptr, *rhs_ptr) == 0; 19124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 19224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return lhs_ptr == rhs_ptr; 19324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 19424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 19524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerbool 19624943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::operator != (const SBLineEntry &rhs) const 19724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 19863094e0bb161580564954dee512955c1c79d3476Greg Clayton lldb_private::LineEntry *lhs_ptr = m_opaque_ap.get(); 19963094e0bb161580564954dee512955c1c79d3476Greg Clayton lldb_private::LineEntry *rhs_ptr = rhs.m_opaque_ap.get(); 20024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 20124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner if (lhs_ptr && rhs_ptr) 20224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return lldb_private::LineEntry::Compare (*lhs_ptr, *rhs_ptr) != 0; 20324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 20424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return lhs_ptr != rhs_ptr; 20524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 20624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 20724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerconst lldb_private::LineEntry * 20824943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBLineEntry::operator->() const 20924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 21063094e0bb161580564954dee512955c1c79d3476Greg Clayton return m_opaque_ap.get(); 21124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 21224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 21323b8abbe214c252028f6e09f79169529c846409dGreg Claytonlldb_private::LineEntry & 21423b8abbe214c252028f6e09f79169529c846409dGreg ClaytonSBLineEntry::ref() 21523b8abbe214c252028f6e09f79169529c846409dGreg Clayton{ 21623b8abbe214c252028f6e09f79169529c846409dGreg Clayton if (m_opaque_ap.get() == NULL) 21723b8abbe214c252028f6e09f79169529c846409dGreg Clayton m_opaque_ap.reset (new lldb_private::LineEntry ()); 21823b8abbe214c252028f6e09f79169529c846409dGreg Clayton return *m_opaque_ap; 21923b8abbe214c252028f6e09f79169529c846409dGreg Clayton} 22023b8abbe214c252028f6e09f79169529c846409dGreg Clayton 22124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerconst lldb_private::LineEntry & 22223b8abbe214c252028f6e09f79169529c846409dGreg ClaytonSBLineEntry::ref() const 22324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 22463094e0bb161580564954dee512955c1c79d3476Greg Clayton return *m_opaque_ap; 22524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 22624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 22798f930f429160f9777f626c3ac6aa609f4e965d2Caroline Ticebool 22898f930f429160f9777f626c3ac6aa609f4e965d2Caroline TiceSBLineEntry::GetDescription (SBStream &description) 22998f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice{ 23096154be69fa240a662419183ed08e1cfc5418164Greg Clayton Stream &strm = description.ref(); 23196154be69fa240a662419183ed08e1cfc5418164Greg Clayton 23298f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice if (m_opaque_ap.get()) 23398f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice { 23498f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice char file_path[PATH_MAX*2]; 23598f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice m_opaque_ap->file.GetPath (file_path, sizeof (file_path)); 23696154be69fa240a662419183ed08e1cfc5418164Greg Clayton strm.Printf ("%s:%u", file_path, GetLine()); 23798f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice if (GetColumn() > 0) 23896154be69fa240a662419183ed08e1cfc5418164Greg Clayton strm.Printf (":%u", GetColumn()); 23998f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice } 24098f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice else 24196154be69fa240a662419183ed08e1cfc5418164Greg Clayton strm.PutCString ("No value"); 24224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 24398f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice return true; 24498f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice} 24561ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice 24661ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Ticelldb_private::LineEntry * 24761ba7ec20f616f907473dd501341cef5b47fa3f8Caroline TiceSBLineEntry::get () 24861ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice{ 24961ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice return m_opaque_ap.get(); 25061ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice} 251