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);
}