diff options
author | Nico Weber <nicolasweber@gmx.de> | 2019-07-16 18:04:26 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2019-07-16 18:04:26 +0000 |
commit | d100b5dd0197df615ac0ffc1619aec796cbdc0be (patch) | |
tree | 62007d55a3c13a85269dea83c3c86a642304dfc9 /llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h | |
parent | 17060f0a54b681b8c7cec2f9ab465f6a1e51d968 (diff) | |
download | bcm5719-llvm-d100b5dd0197df615ac0ffc1619aec796cbdc0be.tar.gz bcm5719-llvm-d100b5dd0197df615ac0ffc1619aec796cbdc0be.zip |
Teach `llvm-pdbutil pretty -native` about `-injected-sources`
`pretty -native -injected-sources -injected-source-content` works with
this patch, and produces identical output to the dia version.
Differential Revision: https://reviews.llvm.org/D64428
llvm-svn: 366236
Diffstat (limited to 'llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h')
-rw-r--r-- | llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h b/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h new file mode 100644 index 00000000000..d0cac3749bc --- /dev/null +++ b/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h @@ -0,0 +1,44 @@ +//===- InjectedSourceStream.h - PDB Headerblock Stream Access ---*- 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_DEBUGINFO_PDB_RAW_PDBINJECTEDSOURCESTREAM_H +#define LLVM_DEBUGINFO_PDB_RAW_PDBINJECTEDSOURCESTREAM_H + +#include "llvm/DebugInfo/PDB/Native/HashTable.h" +#include "llvm/DebugInfo/PDB/Native/RawTypes.h" +#include "llvm/Support/Error.h" + +namespace llvm { +namespace msf { +class MappedBlockStream; +} +namespace pdb { +class PDBFile; +class PDBStringTable; + +class InjectedSourceStream { +public: + InjectedSourceStream(std::unique_ptr<msf::MappedBlockStream> Stream); + Error reload(const PDBStringTable &Strings); + + using const_iterator = HashTable<SrcHeaderBlockEntry>::const_iterator; + const_iterator begin() const { return InjectedSourceTable.begin(); } + const_iterator end() const { return InjectedSourceTable.end(); } + + uint32_t size() const { return InjectedSourceTable.size(); } + +private: + std::unique_ptr<msf::MappedBlockStream> Stream; + + const SrcHeaderBlockHeader* Header; + HashTable<SrcHeaderBlockEntry> InjectedSourceTable; +}; +} +} + +#endif |