diff options
| author | Zachary Turner <zturner@google.com> | 2016-08-01 21:19:45 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2016-08-01 21:19:45 +0000 |
| commit | d3c7b8e303e96fae3ab0c3fc6a42f7f8b87a17e4 (patch) | |
| tree | 90e2fca0d8963e50c19084b3bb7551035750aaac /llvm/test/DebugInfo | |
| parent | e594277683e686a30fe63b90ccd43e5cdebe24c3 (diff) | |
| download | bcm5719-llvm-d3c7b8e303e96fae3ab0c3fc6a42f7f8b87a17e4.tar.gz bcm5719-llvm-d3c7b8e303e96fae3ab0c3fc6a42f7f8b87a17e4.zip | |
[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
llvm-svn: 277388
Diffstat (limited to 'llvm/test/DebugInfo')
| -rw-r--r-- | llvm/test/DebugInfo/PDB/pdbdump-headers.test | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-headers.test b/llvm/test/DebugInfo/PDB/pdbdump-headers.test index c94ebbb1d8c..8196a254226 100644 --- a/llvm/test/DebugInfo/PDB/pdbdump-headers.test +++ b/llvm/test/DebugInfo/PDB/pdbdump-headers.test @@ -2,7 +2,7 @@ ; RUN: -sym-record-bytes -publics -module-files -stream-name=/names \ ; RUN: -stream-summary -stream-blocks -ipi-records -ipi-record-bytes \ ; RUN: -section-contribs -section-map -section-headers -line-info \ -; RUN: -tpi-hash -fpo -fpm %p/Inputs/empty.pdb | FileCheck -check-prefix=EMPTY %s +; RUN: -tpi-hash -fpo -page-stats %p/Inputs/empty.pdb | FileCheck -check-prefix=EMPTY %s ; RUN: llvm-pdbdump raw -all %p/Inputs/empty.pdb | FileCheck -check-prefix=ALL %s ; RUN: llvm-pdbdump raw -headers -stream-name=/names -modules -module-files \ ; RUN: %p/Inputs/big-read.pdb | FileCheck -check-prefix=BIG %s @@ -38,7 +38,10 @@ ; EMPTY-NEXT: Stream 15: [TPI Hash] (308 bytes) ; EMPTY-NEXT: Stream 16: [IPI Hash] (68 bytes) ; EMPTY-NEXT: ] -; EMPTY-NEXT: Used Page Map: [0, 1, 2, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] +; EMPTY-NEXT: Msf Free Pages: [3, 4, 5, 8, 9] +; EMPTY-NEXT: Orphaned Pages: [] +; EMPTY-NEXT: Multiply Used Pages: [] +; EMPTY-NEXT: Use After Free Pages: [8] ; EMPTY-NEXT: StreamBlocks [ ; EMPTY-NEXT: Stream 0: [8] ; EMPTY-NEXT: Stream 1: [19] @@ -974,7 +977,10 @@ ; ALL: Stream 15: [TPI Hash] (308 bytes) ; ALL: Stream 16: [IPI Hash] (68 bytes) ; ALL: ] -; ALL: Used Page Map: [0, 1, 2, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] +; ALL: Msf Free Pages: [3, 4, 5, 8, 9] +; ALL: Orphaned Pages: [] +; ALL: Multiply Used Pages: [] +; ALL: Use After Free Pages: [8] ; ALL: StreamBlocks [ ; ALL: Stream 0: [8] ; ALL: Stream 1: [19] |

