diff options
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp')
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp b/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp index c9bd9a48568..cda9508c07a 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp +++ b/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp @@ -17,6 +17,7 @@ #include "llvm/DebugInfo/PDB/Native/PDBFile.h" #include "llvm/DebugInfo/PDB/Native/PublicsStream.h" #include "llvm/DebugInfo/PDB/Native/SymbolStream.h" +#include "llvm/DebugInfo/PDB/Native/TpiStream.h" #include "llvm/Object/COFF.h" #include "llvm/Support/Error.h" @@ -51,6 +52,8 @@ PdbIndex::create(std::unique_ptr<llvm::pdb::PDBFile> file) { ASSIGN_PTR_OR_RETURN(result->m_globals, file->getPDBGlobalsStream()); ASSIGN_PTR_OR_RETURN(result->m_symrecords, file->getPDBSymbolStream()); + result->m_tpi->buildHashMap(); + result->m_file = std::move(file); return std::move(result); @@ -101,6 +104,9 @@ void PdbIndex::ParseSectionContribs() { : m_ctx(ctx), m_imap(imap) {} void visit(const SectionContrib &C) override { + if (C.Size == 0) + return; + uint64_t va = m_ctx.MakeVirtualAddress(C.ISect, C.Off); uint64_t end = va + C.Size; // IntervalMap's start and end represent a closed range, not a half-open |

