OSDN Git Service

[msf] Teach LLVM to parse a split Fpm.
authorZachary Turner <zturner@google.com>
Mon, 1 Aug 2016 21:19:45 +0000 (21:19 +0000)
committerZachary Turner <zturner@google.com>
Mon, 1 Aug 2016 21:19:45 +0000 (21:19 +0000)
commit822ef4e4208e46a56b5f895ec5726fffff881aa5
tree1ce6824fb2bc1e45bcc6dbb9842b62cf95c9d694
parent075c1e2e1aa2a1fc577cb92ab40a260e45929984
[msf] Teach LLVM to parse a split Fpm.

The FPM is split at regular intervals across the MSF file, as the MS code
suggests. It turns out that the value of the interval is precisely the
block size. If the block size is 4096, then there are two Fpm pages every
4096 blocks.

So here we teach the PDBFile class to parse a split FPM, and also add more
options when dumping the FPM to display some additional information such
as orphaned pages (pages which the FPM says are allocated, but which
nothing appears to use), use after free pages (pages which the FPM says
are not allocated, but which are referenced by a stream), and multiple use
pages (pages which the FPM says are allocated but are used more than
once).

Reviewed By: ruiu
Differential Revision: https://reviews.llvm.org/D23022

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@277388 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/DebugInfo/PDB/Raw/PDBFile.h
lib/DebugInfo/PDB/Raw/PDBFile.cpp
test/DebugInfo/PDB/pdbdump-headers.test
tools/llvm-pdbdump/LLVMOutputStyle.cpp
tools/llvm-pdbdump/LLVMOutputStyle.h
tools/llvm-pdbdump/llvm-pdbdump.cpp
tools/llvm-pdbdump/llvm-pdbdump.h