Fixed a crasher (an assert was firing in the DWARF parser) when setting
breakpoints on inlined functions by name. This involved fixing the DWARF parser
to correctly back up and parse the concrete function when we find inlined
functions by name, then grabbing any appropriate inlined blocks and returning
symbol contexts with the block filled in. After this was fixed, the breakpoint
by name resolver needed to correctly deal with symbol contexts that had the
inlined block filled in in the symbol contexts.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@119017 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Symbol/Block.cpp b/source/Symbol/Block.cpp
index 1731bf4..2aa8562 100644
--- a/source/Symbol/Block.cpp
+++ b/source/Symbol/Block.cpp
@@ -358,6 +358,24 @@
     return false;
 }
 
+
+bool
+Block::GetStartAddress (Address &addr)
+{
+    if (m_ranges.empty())
+        return false;
+
+    SymbolContext sc;
+    CalculateSymbolContext(&sc);
+    if (sc.function)
+    {
+        addr = sc.function->GetAddressRange().GetBaseAddress();
+        addr.Slide(m_ranges.front().GetBaseAddress ());
+        return true;
+    }
+    return false;
+}
+
 void
 Block::AddRange(addr_t start_offset, addr_t end_offset)
 {