Files
clang-p2996/llvm/test/tools/llvm-pdbdump/explain.test
Zachary Turner f4b6dcf6af [PDB] Print some more details when explaining MSF fields.
When we determine that a field belongs to an MSF super block or
the free page map, we wouldn't print any additional information.

With this patch, we now print the value of the field (for super
block fields) or the allocation status of the specified byte (in
the case of offsets in the FPM).

llvm-svn: 328808
2018-03-29 17:45:34 +00:00

87 lines
3.6 KiB
Plaintext

; RUN: llvm-pdbutil explain -offset=0 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=ZERO %s
; RUN: llvm-pdbutil explain -offset=40 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=FORTY %s
; RUN: llvm-pdbutil explain -offset=60 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=SIXTY %s
; RUN: llvm-pdbutil explain -offset=0x1000 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=FPM1 %s
; RUN: llvm-pdbutil explain -offset=0x1100 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=EXTRANEOUSFPM %s
; RUN: llvm-pdbutil explain -offset=0x2000 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=FPM2 %s
; RUN: llvm-pdbutil explain -offset=0x3000 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=UNALLOCATED %s
; RUN: llvm-pdbutil explain -offset=0x7000 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=STREAM %s
; RUN: llvm-pdbutil explain -offset=0x1A000 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=STREAMDIR %s
; RUN: llvm-pdbutil explain -offset=0x1B000 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=DIRBLOCKLIST %s
; RUN: llvm-pdbutil explain -offset=0x1D000 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=INVALIDFILEOFFSET %s
; RUN: llvm-pdbutil explain -offset=0xA100 %p/Inputs/InjectedSource.pdb \
; RUN: | FileCheck --check-prefix=UNUSED %s
ZERO: Block:Offset = 0:0000.
ZERO-NEXT: Address is in block 0 (allocated).
ZERO-NEXT: This corresponds to offset 0 of the MSF super block,
ZERO-NEXT: which is part of the MSF file magic.
FORTY: Block:Offset = 0:0028.
FORTY-NEXT: Address is in block 0 (allocated).
FORTY-NEXT: This corresponds to offset 40 of the MSF super block,
FORTY-NEXT: which contains the number of blocks in the file.
FORTY-NEXT: The current value is 29.
SIXTY: Block:Offset = 0:003C.
SIXTY-NEXT: Address is in block 0 (allocated).
SIXTY-NEXT: This corresponds to offset 60 of the MSF super block,
SIXTY-NEXT: which is outside the range of valid data for the super block.
FPM1: Block:Offset = 1:0000.
FPM1-NEXT: Address is in block 1 (allocated).
FPM1-NEXT: Address is in FPM1 (Alt FPM)
FPM1-NEXT: Address describes the allocation status of blocks [0,8)
FPM1-NEXT: Status = 00000011 (Note: 0 = allocated, 1 = free)
EXTRANEOUSFPM: Block:Offset = 1:0100.
EXTRANEOUSFPM-NEXT: Address is in block 1 (allocated).
EXTRANEOUSFPM-NEXT: Address is in FPM1 (Alt FPM)
EXTRANEOUSFPM-NEXT: Address is in extraneous FPM space.
FPM2: Block:Offset = 2:0000.
FPM2-NEXT: Address is in block 2 (allocated).
FPM2-NEXT: Address is in FPM2 (Main FPM)
FPM2-NEXT: Address describes the allocation status of blocks [0,8)
FPM2-NEXT: Status = 00011100 (Note: 0 = allocated, 1 = free)
UNALLOCATED: Block:Offset = 3:0000.
UNALLOCATED-NEXT: Address is in block 3 (unallocated).
STREAM: Block:Offset = 7:0000.
STREAM-NEXT: Address is in block 7 (allocated).
STREAM-NEXT: Address is at offset 0/684 of Stream 12 (Module "* Linker *").
STREAMDIR: Block:Offset = 1A:0000.
STREAMDIR-NEXT: Address is in block 26 (allocated).
STREAMDIR-NEXT: Address is at offset 0/156 of Stream Directory.
DIRBLOCKLIST: Block:Offset = 1B:0000.
DIRBLOCKLIST-NEXT: Address is in block 27 (allocated).
DIRBLOCKLIST-NEXT: Address is at offset 0 of the directory block list
INVALIDFILEOFFSET: Address 118784 is not in the file (file size = 118784).
UNUSED: Block:Offset = A:0100.
UNUSED-NEXT: Address is in block 10 (allocated).
UNUSED-NEXT: Address is at offset 256/120 of Stream 11 (Section Header Data) in unused space.