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 ();
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126892 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/API/SBFunction.cpp b/source/API/SBFunction.cpp
index 853a6ff..c8ce1c3 100644
--- a/source/API/SBFunction.cpp
+++ b/source/API/SBFunction.cpp
@@ -156,3 +156,38 @@
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;
+}
+
+