#include "PdbIndex.h"
#include "PdbUtil.h"
#include "llvm/DebugInfo/CodeView/SymbolDeserializer.h"
#include "llvm/DebugInfo/PDB/Native/DbiStream.h"
#include "llvm/DebugInfo/PDB/Native/GlobalsStream.h"
#include "llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h"
#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"
#include "lldb/Utility/LLDBAssert.h"
#include "lldb/lldb-defines.h"
#include <optional>
usingnamespacelldb_private;
usingnamespacelldb_private::npdb;
usingnamespacellvm::codeview;
usingnamespacellvm::pdb;
PdbIndex::PdbIndex() : … { … }
#define ASSIGN_PTR_OR_RETURN(result_ptr, expr) …
llvm::Expected<std::unique_ptr<PdbIndex>>
PdbIndex::create(llvm::pdb::PDBFile *file) { … }
lldb::addr_t PdbIndex::MakeVirtualAddress(uint16_t segment,
uint32_t offset) const { … }
std::optional<uint16_t> PdbIndex::GetModuleIndexForAddr(uint16_t segment,
uint32_t offset) const { … }
std::optional<uint16_t> PdbIndex::GetModuleIndexForVa(lldb::addr_t va) const { … }
void PdbIndex::ParseSectionContribs() { … }
void PdbIndex::BuildAddrToSymbolMap(CompilandIndexItem &cci) { … }
std::vector<SymbolAndUid> PdbIndex::FindSymbolsByVa(lldb::addr_t va) { … }
CVSymbol PdbIndex::ReadSymbolRecord(PdbCompilandSymId cu_sym) const { … }
CVSymbol PdbIndex::ReadSymbolRecord(PdbGlobalSymId global) const { … }