003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/tools/llvm-pdbutil
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
tools
/
llvm-pdbutil
/
📁
..
📄
BytesOutputStyle.cpp
(14.1 KB)
📄
BytesOutputStyle.h
(1.61 KB)
📄
DumpOutputStyle.cpp
(63.95 KB)
📄
DumpOutputStyle.h
(2.94 KB)
📄
ExplainOutputStyle.cpp
(18.16 KB)
📄
ExplainOutputStyle.h
(1.64 KB)
📄
FormatUtil.cpp
(11.89 KB)
📄
FormatUtil.h
(4.47 KB)
📄
InputFile.cpp
(14.26 KB)
📄
InputFile.h
(4.31 KB)
📄
LinePrinter.cpp
(10 KB)
📄
LinePrinter.h
(4.37 KB)
📄
MinimalSymbolDumper.cpp
(34.92 KB)
📄
MinimalSymbolDumper.h
(2.52 KB)
📄
MinimalTypeDumper.cpp
(22.68 KB)
📄
MinimalTypeDumper.h
(2.73 KB)
📄
OutputStyle.h
(643 B)
📄
PdbYaml.cpp
(7.83 KB)
📄
PdbYaml.h
(3.6 KB)
📄
PrettyBuiltinDumper.cpp
(2.6 KB)
📄
PrettyBuiltinDumper.h
(856 B)
📄
PrettyClassDefinitionDumper.cpp
(3.7 KB)
📄
PrettyClassDefinitionDumper.h
(1.17 KB)
📄
PrettyClassLayoutGraphicalDumper.cpp
(6.81 KB)
📄
PrettyClassLayoutGraphicalDumper.h
(1.7 KB)
📄
PrettyCompilandDumper.cpp
(7.77 KB)
📄
PrettyCompilandDumper.h
(1.37 KB)
📄
PrettyEnumDumper.cpp
(2.38 KB)
📄
PrettyEnumDumper.h
(746 B)
📄
PrettyExternalSymbolDumper.cpp
(1.32 KB)
📄
PrettyExternalSymbolDumper.h
(842 B)
📄
PrettyFunctionDumper.cpp
(9.01 KB)
📄
PrettyFunctionDumper.h
(1.31 KB)
📄
PrettyTypeDumper.cpp
(11.3 KB)
📄
PrettyTypeDumper.h
(1.24 KB)
📄
PrettyTypedefDumper.cpp
(3.02 KB)
📄
PrettyTypedefDumper.h
(1.08 KB)
📄
PrettyVariableDumper.cpp
(7.29 KB)
📄
PrettyVariableDumper.h
(1.54 KB)
📄
StreamUtil.cpp
(7.81 KB)
📄
StreamUtil.h
(1.55 KB)
📄
TypeReferenceTracker.cpp
(5.53 KB)
📄
TypeReferenceTracker.h
(2.07 KB)
📄
YAMLOutputStyle.cpp
(10.96 KB)
📄
YAMLOutputStyle.h
(1.17 KB)
📄
llvm-pdbutil.cpp
(63.12 KB)
📄
llvm-pdbutil.h
(6.77 KB)
Editing: InputFile.h
//===- InputFile.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 LLVM_TOOLS_LLVMPDBDUMP_INPUTFILE_H #define LLVM_TOOLS_LLVMPDBDUMP_INPUTFILE_H #include "llvm/ADT/Optional.h" #include "llvm/ADT/PointerUnion.h" #include "llvm/ADT/StringMap.h" #include "llvm/ADT/iterator.h" #include "llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h" #include "llvm/DebugInfo/CodeView/StringsAndChecksums.h" #include "llvm/DebugInfo/PDB/Native/ModuleDebugStream.h" #include "llvm/Object/Binary.h" #include "llvm/Object/ObjectFile.h" #include "llvm/Support/Error.h" namespace llvm { namespace codeview { class LazyRandomTypeCollection; } namespace object { class COFFObjectFile; class SectionRef; } // namespace object namespace pdb { class InputFile; class LinePrinter; class PDBFile; class NativeSession; class SymbolGroupIterator; class SymbolGroup; class InputFile { InputFile(); std::unique_ptr<NativeSession> PdbSession; object::OwningBinary<object::Binary> CoffObject; std::unique_ptr<MemoryBuffer> UnknownFile; PointerUnion<PDBFile *, object::COFFObjectFile *, MemoryBuffer *> PdbOrObj; using TypeCollectionPtr = std::unique_ptr<codeview::LazyRandomTypeCollection>; TypeCollectionPtr Types; TypeCollectionPtr Ids; enum TypeCollectionKind { kTypes, kIds }; codeview::LazyRandomTypeCollection & getOrCreateTypeCollection(TypeCollectionKind Kind); public: ~InputFile(); InputFile(InputFile &&Other) = default; static Expected<InputFile> open(StringRef Path, bool AllowUnknownFile = false); PDBFile &pdb(); const PDBFile &pdb() const; object::COFFObjectFile &obj(); const object::COFFObjectFile &obj() const; MemoryBuffer &unknown(); const MemoryBuffer &unknown() const; StringRef getFilePath() const; bool hasTypes() const; bool hasIds() const; codeview::LazyRandomTypeCollection &types(); codeview::LazyRandomTypeCollection &ids(); iterator_range<SymbolGroupIterator> symbol_groups(); SymbolGroupIterator symbol_groups_begin(); SymbolGroupIterator symbol_groups_end(); bool isPdb() const; bool isObj() const; bool isUnknown() const; }; class SymbolGroup { friend class SymbolGroupIterator; public: explicit SymbolGroup(InputFile *File, uint32_t GroupIndex = 0); Expected<StringRef> getNameFromStringTable(uint32_t Offset) const; void formatFromFileName(LinePrinter &Printer, StringRef File, bool Append = false) const; void formatFromChecksumsOffset(LinePrinter &Printer, uint32_t Offset, bool Append = false) const; StringRef name() const; codeview::DebugSubsectionArray getDebugSubsections() const { return Subsections; } const ModuleDebugStreamRef &getPdbModuleStream() const; const InputFile &getFile() const { return *File; } InputFile &getFile() { return *File; } bool hasDebugStream() const { return DebugStream != nullptr; } private: void initializeForPdb(uint32_t Modi); void updatePdbModi(uint32_t Modi); void updateDebugS(const codeview::DebugSubsectionArray &SS); void rebuildChecksumMap(); InputFile *File = nullptr; StringRef Name; codeview::DebugSubsectionArray Subsections; std::shared_ptr<ModuleDebugStreamRef> DebugStream; codeview::StringsAndChecksumsRef SC; StringMap<codeview::FileChecksumEntry> ChecksumsByFile; }; class SymbolGroupIterator : public iterator_facade_base<SymbolGroupIterator, std::forward_iterator_tag, SymbolGroup> { public: SymbolGroupIterator(); explicit SymbolGroupIterator(InputFile &File); SymbolGroupIterator(const SymbolGroupIterator &Other) = default; SymbolGroupIterator &operator=(const SymbolGroupIterator &R) = default; const SymbolGroup &operator*() const; SymbolGroup &operator*(); bool operator==(const SymbolGroupIterator &R) const; SymbolGroupIterator &operator++(); private: void scanToNextDebugS(); bool isEnd() const; uint32_t Index = 0; Optional<object::section_iterator> SectionIter; SymbolGroup Value; }; } // namespace pdb } // namespace llvm #endif
Upload File
Create Folder