diff options
author | Greg Clayton <gclayton@apple.com> | 2011-03-02 23:01:18 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2011-03-02 23:01:18 +0000 |
commit | 93d00df578fbcc92886342ab2ecc1f6d4f785782 (patch) | |
tree | 24798e20da3aec8384991fe6361883c5ae1f39d7 /lldb/source/API/SBFunction.cpp | |
parent | 1a234ff46f936318d9bd40657e28b653b24dbc9b (diff) | |
download | bcm5719-llvm-93d00df578fbcc92886342ab2ecc1f6d4f785782.tar.gz bcm5719-llvm-93d00df578fbcc92886342ab2ecc1f6d4f785782.zip |
Export the ability to get the start and end addresses for functions
and symbols, and also allow clients to get the prologue size in bytes:
SBAddress
SBFunction::GetStartAddress ();
SBAddress
SBFunction::GetEndAddress ();
uint32_t
SBFunction::GetPrologueByteSize ();
SBAddress
SBSymbol::GetStartAddress ();
SBAddress
SBSymbol::GetEndAddress ();
uint32_t
SBSymbol::GetPrologueByteSize ();
llvm-svn: 126892
Diffstat (limited to 'lldb/source/API/SBFunction.cpp')
-rw-r--r-- | lldb/source/API/SBFunction.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lldb/source/API/SBFunction.cpp b/lldb/source/API/SBFunction.cpp index 853a6ffd4f2..c8ce1c3874f 100644 --- a/lldb/source/API/SBFunction.cpp +++ b/lldb/source/API/SBFunction.cpp @@ -156,3 +156,38 @@ SBFunction::reset (lldb_private::Function *lldb_object_ptr) m_opaque_ptr = lldb_object_ptr; } +SBAddress +SBFunction::GetStartAddress () +{ + SBAddress addr; + if (m_opaque_ptr) + addr.SetAddress (&m_opaque_ptr->GetAddressRange().GetBaseAddress()); + return addr; +} + +SBAddress +SBFunction::GetEndAddress () +{ + SBAddress addr; + if (m_opaque_ptr) + { + addr_t byte_size = m_opaque_ptr->GetAddressRange().GetByteSize(); + if (byte_size > 0) + { + addr.SetAddress (&m_opaque_ptr->GetAddressRange().GetBaseAddress()); + addr->Slide (byte_size); + } + } + return addr; +} + + +uint32_t +SBFunction::GetPrologueByteSize () +{ + if (m_opaque_ptr) + return m_opaque_ptr->GetPrologueByteSize(); + return 0; +} + + |