summaryrefslogtreecommitdiffstats
path: root/lldb/source
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2015-01-15 03:13:44 +0000
committerGreg Clayton <gclayton@apple.com>2015-01-15 03:13:44 +0000
commitf7bb1fba36f50bf6a135fd808ce9fdae20d7040c (patch)
tree7141b7a3d1a25677c2a0b7fb0a38c6d03b7c84e4 /lldb/source
parentdd669615dd604f5ac4d89c6c062cd8a7bf345f38 (diff)
downloadbcm5719-llvm-f7bb1fba36f50bf6a135fd808ce9fdae20d7040c.tar.gz
bcm5719-llvm-f7bb1fba36f50bf6a135fd808ce9fdae20d7040c.zip
Don't crash when we can't find a block for some reason, just try and do the right thing and fail gracefully.
<rdar://problem/19196221> llvm-svn: 226087
Diffstat (limited to 'lldb/source')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index d3c62c85ab5..e5fa755af58 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -3485,9 +3485,11 @@ SymbolFileDWARF::ResolveFunction (DWARFCompileUnit *cu,
// Parse all blocks if needed
if (inlined_die)
{
- sc.block = sc.function->GetBlock (true).FindBlockByID (MakeUserID(inlined_die->GetOffset()));
- assert (sc.block != NULL);
- if (sc.block->GetStartAddress (addr) == false)
+ Block &function_block = sc.function->GetBlock (true);
+ sc.block = function_block.FindBlockByID (MakeUserID(inlined_die->GetOffset()));
+ if (sc.block == NULL)
+ sc.block = function_block.FindBlockByID (inlined_die->GetOffset());
+ if (sc.block == NULL || sc.block->GetStartAddress (addr) == false)
addr.Clear();
}
else
OpenPOWER on IntegriCloud