Make sure the address passed into SymbolContext::DumpStopContext() is valid before trying to calculate any offsets.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113645 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Symbol/SymbolContext.cpp b/source/Symbol/SymbolContext.cpp
index d70976c..7bc5412 100644
--- a/source/Symbol/SymbolContext.cpp
+++ b/source/Symbol/SymbolContext.cpp
@@ -156,9 +156,12 @@
                 return;
             }
         }
-        const addr_t function_offset = addr.GetOffset() - function->GetAddressRange().GetBaseAddress().GetOffset();
-        if (function_offset)
-            s->Printf(" + %llu", function_offset);
+        if (addr.IsValid())
+        {
+            const addr_t function_offset = addr.GetOffset() - function->GetAddressRange().GetBaseAddress().GetOffset();
+            if (function_offset)
+                s->Printf(" + %llu", function_offset);
+        }
 
         if (block != NULL)
         {
@@ -180,14 +183,14 @@
     {
         symbol->GetMangled().GetName().Dump(s);
 
-        if (symbol->GetAddressRangePtr())
+        if (addr.IsValid() && symbol->GetAddressRangePtr())
         {
             const addr_t symbol_offset = addr.GetOffset() - symbol->GetAddressRangePtr()->GetBaseAddress().GetOffset();
             if (symbol_offset)
                 s->Printf(" + %llu", symbol_offset);
         }
     }
-    else
+    else if (addr.IsValid())
     {
         addr.Dump(s, exe_scope, Address::DumpStyleModuleWithFileAddress);
     }