summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SBFunction.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-03-02 23:01:18 +0000
committerGreg Clayton <gclayton@apple.com>2011-03-02 23:01:18 +0000
commit93d00df578fbcc92886342ab2ecc1f6d4f785782 (patch)
tree24798e20da3aec8384991fe6361883c5ae1f39d7 /lldb/source/API/SBFunction.cpp
parent1a234ff46f936318d9bd40657e28b653b24dbc9b (diff)
downloadbcm5719-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.cpp35
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;
+}
+
+
OpenPOWER on IntegriCloud