Added the ability for SBTarget to resolve load addresses (convert lldb::addr_t values into resolved SBAddress objects). These SBAddress objects can then be used to resolve a symbol context using "lldb::SBSymbolContext ResolveSymbolContextForAddress (const lldb::SBAddress& addr, uint32_t resolve_scope);".

llvm-svn: 121638
This commit is contained in:
Greg Clayton
2010-12-12 19:25:26 +00:00
parent d2e70b5442
commit ac2eb9b1ec
5 changed files with 30 additions and 0 deletions

View File

@@ -54,6 +54,7 @@ protected:
friend class SBInstruction;
friend class SBModule;
friend class SBSymbolContext;
friend class SBTarget;
friend class SBThread;
#ifndef SWIG

View File

@@ -33,6 +33,12 @@ public:
#ifndef SWIG
const lldb::SBBreakpoint &
operator = (const lldb::SBBreakpoint& rhs);
// Tests to see if the opaque breakpoint object in this object matches the
// opaque breakpoint object in "rhs".
bool
operator == (const lldb::SBBreakpoint& rhs);
#endif
break_id_t

View File

@@ -103,6 +103,10 @@ public:
bool
DeleteTargetFromList (lldb_private::TargetList *list);
bool
ResolveLoadAddress (lldb::addr_t vm_addr,
lldb::SBAddress& addr);
lldb::SBBreakpoint
BreakpointCreateByLocation (const char *file, uint32_t line);

View File

@@ -92,6 +92,14 @@ SBBreakpoint::operator = (const SBBreakpoint& rhs)
return *this;
}
bool
SBBreakpoint::operator == (const lldb::SBBreakpoint& rhs)
{
if (m_opaque_sp && rhs.m_opaque_sp)
return m_opaque_sp.get() == rhs.m_opaque_sp.get();
return false;
}
break_id_t
SBBreakpoint::GetID () const
{

View File

@@ -383,6 +383,17 @@ SBTarget::reset (const lldb::TargetSP& target_sp)
m_opaque_sp = target_sp;
}
bool
SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr,
lldb::SBAddress& addr)
{
if (m_opaque_sp)
return m_opaque_sp->GetSectionLoadList().ResolveLoadAddress (vm_addr, *addr);
addr->Clear();
return false;
}
SBBreakpoint
SBTarget::BreakpointCreateByLocation (const char *file, uint32_t line)
{