OSDN Git Service

Parse the TPI (type information) stream of PDB files.
authorZachary Turner <zturner@google.com>
Tue, 3 May 2016 00:28:21 +0000 (00:28 +0000)
committerZachary Turner <zturner@google.com>
Tue, 3 May 2016 00:28:21 +0000 (00:28 +0000)
commit84bc70bd9cdc366afa53717cb14d6abb7f201138
treef76d8703f179720f74548845d84dc76ce96729d7
parent2448e9f766f776afb752559594257ec9a72e16b5
Parse the TPI (type information) stream of PDB files.

This parses the TPI stream (stream 2) from the PDB file. This stream
contains some header information followed by a series of codeview records.
There is some additional complexity here in that alongside this stream of
codeview records is a serialized hash table in order to efficiently query
the types. We parse the necessary bookkeeping information to allow us to
reconstruct the hash table, but we do not actually construct it yet as
there are still a few things that need to be understood first.

Differential Revision: http://reviews.llvm.org/D19840
Reviewed By: ruiu, rnk

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268343 91177308-0d34-0410-b5e6-96231b3b80d8
15 files changed:
include/llvm/DebugInfo/PDB/Raw/ByteStream.h
include/llvm/DebugInfo/PDB/Raw/MappedBlockStream.h
include/llvm/DebugInfo/PDB/Raw/PDBFile.h
include/llvm/DebugInfo/PDB/Raw/RawConstants.h
include/llvm/DebugInfo/PDB/Raw/StreamInterface.h
include/llvm/DebugInfo/PDB/Raw/StreamReader.h
include/llvm/DebugInfo/PDB/Raw/TpiStream.h [new file with mode: 0644]
lib/DebugInfo/PDB/CMakeLists.txt
lib/DebugInfo/PDB/Raw/ByteStream.cpp
lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp
lib/DebugInfo/PDB/Raw/PDBFile.cpp
lib/DebugInfo/PDB/Raw/StreamReader.cpp
lib/DebugInfo/PDB/Raw/TpiStream.cpp [new file with mode: 0644]
test/DebugInfo/PDB/pdbdump-headers.test
tools/llvm-pdbdump/llvm-pdbdump.cpp