[PDB] Improve GSI hash table dumping for publics and globals
authorReid Kleckner <rnk@google.com>
Wed, 26 Jul 2017 00:40:36 +0000 (00:40 +0000)
committerReid Kleckner <rnk@google.com>
Wed, 26 Jul 2017 00:40:36 +0000 (00:40 +0000)
commit14d90fd05cbed5fd3fcee492f072a4e5816f20b5
tree53164d09de3887dbb7ef6d157766a9d9c801cc5d
parentb4dbe7231e7eb1852248f6ed29fb57d9e9af06de
[PDB] Improve GSI hash table dumping for publics and globals

The PDB "symbol stream" actually contains symbol records for the publics
and the globals stream. The globals and publics streams are essentially
hash tables that point into a single stream of records. In order to
match cvdump's behavior, we need to only dump symbol records referenced
from the hash table. This patch implements that, and then implements
global stream dumping, since it's just a subset of public stream
dumping.

Now we shouldn't see S_PROCREF or S_GDATA32 records when dumping
publics, and instead we should see those record in the globals stream.

llvm-svn: 309066
18 files changed:
llvm/include/llvm/DebugInfo/CodeView/CVRecord.h
llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h
llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h
llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h
llvm/lib/DebugInfo/CodeView/RecordSerialization.cpp
llvm/lib/DebugInfo/PDB/CMakeLists.txt
llvm/lib/DebugInfo/PDB/Native/GSI.cpp [deleted file]
llvm/lib/DebugInfo/PDB/Native/GSI.h
llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp
llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp
llvm/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp
llvm/test/DebugInfo/PDB/pdbdump-headers.test
llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
llvm/tools/llvm-pdbutil/DumpOutputStyle.h
llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
llvm/tools/llvm-pdbutil/llvm-pdbutil.h