RegisterContextLLDB.cpp (InitializeNonZerothFrame): If we get a
0 mid-stack, stop backtracing.

SectionLoadList.cpp (ResolveLoadAddress): Don't assert on an
out-of-range address, just return an invalid Address object.
The unwinder may be passing in invalid addresses on the final
stack frame and the assert is a problem.

llvm-svn: 122386
diff --git a/lldb/source/Target/SectionLoadList.cpp b/lldb/source/Target/SectionLoadList.cpp
index f900d96..ac9f818 100644
--- a/lldb/source/Target/SectionLoadList.cpp
+++ b/lldb/source/Target/SectionLoadList.cpp
@@ -164,13 +164,15 @@
     {
         if (load_addr != pos->first && pos != m_collection.begin())
             --pos;
-        assert (load_addr >= pos->first);
-        addr_t offset = load_addr - pos->first;
-        if (offset < pos->second->GetByteSize())
+        if (load_addr >= pos->first)
         {
-            // We have found the top level section, now we need to find the
-            // deepest child section.
-            return pos->second->ResolveContainedAddress (offset, so_addr);
+            addr_t offset = load_addr - pos->first;
+            if (offset < pos->second->GetByteSize())
+            {
+                // We have found the top level section, now we need to find the
+                // deepest child section.
+                return pos->second->ResolveContainedAddress (offset, so_addr);
+            }
         }
     }
     so_addr.Clear();