//===-- PdbIndex.h ----------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBINDEX_H #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBINDEX_H #include "lldb/lldb-types.h" #include "llvm/ADT/IntervalMap.h" #include "llvm/DebugInfo/PDB/Native/PDBFile.h" #include "llvm/DebugInfo/PDB/PDBTypes.h" #include "CompileUnitIndex.h" #include "PdbSymUid.h" #include <map> #include <memory> #include <optional> namespace llvm { namespace pdb { class DbiStream; class TpiStream; class InfoStream; class PublicsStream; class GlobalsStream; class SymbolStream; } // namespace pdb } // namespace llvm namespace lldb_private { namespace npdb { struct SegmentOffset; /// PdbIndex - Lazy access to the important parts of a PDB file. /// /// This is a layer on top of LLVM's native PDB support libraries which cache /// certain data when it is accessed the first time. The entire PDB file is /// mapped into memory, and the underlying support libraries vend out memory /// that is always backed by the file, so it is safe to hold StringRefs and /// ArrayRefs into the backing memory as long as the PdbIndex instance is /// alive. class PdbIndex { … }; } // namespace npdb } // namespace lldb_private #endif