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)
commitf5c59654f7c8438294ecb6ac0b8613782e0d3956
tree8d242825d7c9ecf7eebccc365b729d0bdf04856a
parent88bb163f816d00d2805b6a0d97ea0f4200b84553
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

llvm-svn: 268343
15 files changed:
llvm/include/llvm/DebugInfo/PDB/Raw/ByteStream.h
llvm/include/llvm/DebugInfo/PDB/Raw/MappedBlockStream.h
llvm/include/llvm/DebugInfo/PDB/Raw/PDBFile.h
llvm/include/llvm/DebugInfo/PDB/Raw/RawConstants.h
llvm/include/llvm/DebugInfo/PDB/Raw/StreamInterface.h
llvm/include/llvm/DebugInfo/PDB/Raw/StreamReader.h
llvm/include/llvm/DebugInfo/PDB/Raw/TpiStream.h [new file with mode: 0644]
llvm/lib/DebugInfo/PDB/CMakeLists.txt
llvm/lib/DebugInfo/PDB/Raw/ByteStream.cpp
llvm/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp
llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp
llvm/lib/DebugInfo/PDB/Raw/StreamReader.cpp
llvm/lib/DebugInfo/PDB/Raw/TpiStream.cpp [new file with mode: 0644]
llvm/test/DebugInfo/PDB/pdbdump-headers.test
llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp