]> granicus.if.org Git - llvm/commit
[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)
commit4a753bdddfc17afb5eeda253c2d4a84f52c63bf3
treef984be5186e49d255f8097ae0572e7526c5834b5
parentec76cbbaaab57ecda6e56da42f109d23deab559b
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309066 91177308-0d34-0410-b5e6-96231b3b80d8
18 files changed:
include/llvm/DebugInfo/CodeView/CVRecord.h
include/llvm/DebugInfo/CodeView/SymbolRecord.h
include/llvm/DebugInfo/PDB/Native/GlobalsStream.h
include/llvm/DebugInfo/PDB/Native/PublicsStream.h
include/llvm/DebugInfo/PDB/Native/RawTypes.h
lib/DebugInfo/CodeView/RecordSerialization.cpp
lib/DebugInfo/PDB/CMakeLists.txt
lib/DebugInfo/PDB/Native/GSI.cpp [deleted file]
lib/DebugInfo/PDB/Native/GSI.h
lib/DebugInfo/PDB/Native/GlobalsStream.cpp
lib/DebugInfo/PDB/Native/PDBFile.cpp
lib/DebugInfo/PDB/Native/PublicsStream.cpp
lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp
test/DebugInfo/PDB/pdbdump-headers.test
tools/llvm-pdbutil/DumpOutputStyle.cpp
tools/llvm-pdbutil/DumpOutputStyle.h
tools/llvm-pdbutil/llvm-pdbutil.cpp
tools/llvm-pdbutil/llvm-pdbutil.h