003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
source
/
Plugins
/
SymbolFile
/
NativePDB
/
📁
..
📄
CodeViewRegisterMapping.cpp
(17.13 KB)
📄
CodeViewRegisterMapping.h
(834 B)
📄
CompileUnitIndex.cpp
(8.14 KB)
📄
CompileUnitIndex.h
(3.26 KB)
📄
DWARFLocationExpression.cpp
(8.53 KB)
📄
DWARFLocationExpression.h
(1.69 KB)
📄
PdbAstBuilder.cpp
(45.61 KB)
📄
PdbAstBuilder.h
(5.06 KB)
📄
PdbFPOProgramToDWARFExpression.cpp
(3.38 KB)
📄
PdbFPOProgramToDWARFExpression.h
(1003 B)
📄
PdbIndex.cpp
(6.87 KB)
📄
PdbIndex.h
(6.3 KB)
📄
PdbSymUid.cpp
(4.4 KB)
📄
PdbSymUid.h
(3.62 KB)
📄
PdbUtil.cpp
(25.8 KB)
📄
PdbUtil.h
(4.46 KB)
📄
SymbolFileNativePDB.cpp
(53.63 KB)
📄
SymbolFileNativePDB.h
(9.5 KB)
📄
UdtRecordCompleter.cpp
(11.11 KB)
📄
UdtRecordCompleter.h
(2.66 KB)
Editing: CompileUnitIndex.h
//===-- CompileUnitIndex.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_COMPILEUNITINDEX_H #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_COMPILEUNITINDEX_H #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseSet.h" #include "llvm/ADT/IntervalMap.h" #include "llvm/ADT/Optional.h" #include "llvm/DebugInfo/CodeView/StringsAndChecksums.h" #include "llvm/DebugInfo/CodeView/SymbolRecord.h" #include "llvm/DebugInfo/CodeView/TypeIndex.h" #include "llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h" #include "llvm/DebugInfo/PDB/Native/ModuleDebugStream.h" #include "llvm/DebugInfo/PDB/PDBTypes.h" #include "PdbSymUid.h" #include <map> #include <memory> namespace lldb_private { namespace npdb { class PdbIndex; /// Represents a single compile unit. This class is useful for collecting the /// important accessors and information about a compile unit from disparate /// parts of the PDB into a single place, simplifying acess to compile unit /// information for the callers. struct CompilandIndexItem { CompilandIndexItem(PdbCompilandId m_id, llvm::pdb::ModuleDebugStreamRef debug_stream, llvm::pdb::DbiModuleDescriptor descriptor); // index of this compile unit. PdbCompilandId m_id; // debug stream. llvm::pdb::ModuleDebugStreamRef m_debug_stream; // dbi module descriptor. llvm::pdb::DbiModuleDescriptor m_module_descriptor; llvm::codeview::StringsAndChecksumsRef m_strings; // List of files which contribute to this compiland. std::vector<llvm::StringRef> m_file_list; // Maps virtual address to global symbol id, which can then be used to // locate the exact compile unit and offset of the symbol. Note that this // is intentionally an ordered map so that we can find all symbols up to a // given starting address. std::map<lldb::addr_t, PdbSymUid> m_symbols_by_va; // S_COMPILE3 sym describing compilation settings for the module. llvm::Optional<llvm::codeview::Compile3Sym> m_compile_opts; // S_OBJNAME sym describing object name. llvm::Optional<llvm::codeview::ObjNameSym> m_obj_name; // LF_BUILDINFO sym describing source file name, working directory, // command line, etc. This usually contains exactly 5 items which // are references to other strings. llvm::SmallVector<llvm::codeview::TypeIndex, 5> m_build_info; }; /// Indexes information about all compile units. This is really just a map of /// global compile unit index to |CompilandIndexItem| structures. class CompileUnitIndex { PdbIndex &m_index; llvm::DenseMap<uint16_t, std::unique_ptr<CompilandIndexItem>> m_comp_units; public: explicit CompileUnitIndex(PdbIndex &index) : m_index(index) {} CompilandIndexItem &GetOrCreateCompiland(uint16_t modi); const CompilandIndexItem *GetCompiland(uint16_t modi) const; CompilandIndexItem *GetCompiland(uint16_t modi); llvm::SmallString<64> GetMainSourceFile(const CompilandIndexItem &item) const; }; } // namespace npdb } // namespace lldb_private #endif
Upload File
Create Folder