From 6b124f29e727da3f3d27112b7ded82b404a68b2f Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Fri, 23 Jun 2017 19:54:44 +0000 Subject: [llvm-pdbutil] Add the ability to dump raw bytes from the file. Normally we can only make sense of the content of a PDB in terms of streams and blocks, but in some cases it may be useful to dump bytes at a specific absolute file offset. For example, if you know that some interesting data is at a particular location and you want to see some surrounding data. llvm-svn: 306146 --- llvm/test/DebugInfo/PDB/pdbdump-raw-blocks.test | 12 ++++++------ llvm/test/DebugInfo/PDB/pdbdump-raw-bytes.test | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 llvm/test/DebugInfo/PDB/pdbdump-raw-bytes.test (limited to 'llvm/test') diff --git a/llvm/test/DebugInfo/PDB/pdbdump-raw-blocks.test b/llvm/test/DebugInfo/PDB/pdbdump-raw-blocks.test index 16cd8e7a469..aa81293805b 100644 --- a/llvm/test/DebugInfo/PDB/pdbdump-raw-blocks.test +++ b/llvm/test/DebugInfo/PDB/pdbdump-raw-blocks.test @@ -1,9 +1,9 @@ -; RUN: llvm-pdbutil bytes -block-data=0 %p/Inputs/empty.pdb | FileCheck --check-prefix=BLOCK0 %s -; RUN: llvm-pdbutil bytes -block-data=0-1 %p/Inputs/empty.pdb | FileCheck --check-prefix=BLOCK01 %s -; RUN: llvm-pdbutil bytes -block-data=0-0x1 %p/Inputs/empty.pdb | FileCheck --check-prefix=BLOCK01 %s -; RUN: not llvm-pdbutil bytes -block-data=0,1 %p/Inputs/empty.pdb 2>&1 | FileCheck --check-prefix=BADSYNTAX %s -; RUN: not llvm-pdbutil bytes -block-data=0a1 %p/Inputs/empty.pdb 2>&1 | FileCheck --check-prefix=BADSYNTAX %s -; RUN: not llvm-pdbutil bytes -block-data=0- %p/Inputs/empty.pdb 2>&1 | FileCheck --check-prefix=BADSYNTAX %s +; RUN: llvm-pdbutil bytes -block-range=0 %p/Inputs/empty.pdb | FileCheck --check-prefix=BLOCK0 %s +; RUN: llvm-pdbutil bytes -block-range=0-1 %p/Inputs/empty.pdb | FileCheck --check-prefix=BLOCK01 %s +; RUN: llvm-pdbutil bytes -block-range=0-0x1 %p/Inputs/empty.pdb | FileCheck --check-prefix=BLOCK01 %s +; RUN: not llvm-pdbutil bytes -block-range=0,1 %p/Inputs/empty.pdb 2>&1 | FileCheck --check-prefix=BADSYNTAX %s +; RUN: not llvm-pdbutil bytes -block-range=0a1 %p/Inputs/empty.pdb 2>&1 | FileCheck --check-prefix=BADSYNTAX %s +; RUN: not llvm-pdbutil bytes -block-range=0- %p/Inputs/empty.pdb 2>&1 | FileCheck --check-prefix=BADSYNTAX %s BLOCK0: MSF Blocks BLOCK0-NEXT: ============================================================ diff --git a/llvm/test/DebugInfo/PDB/pdbdump-raw-bytes.test b/llvm/test/DebugInfo/PDB/pdbdump-raw-bytes.test new file mode 100644 index 00000000000..2c5c96c5a38 --- /dev/null +++ b/llvm/test/DebugInfo/PDB/pdbdump-raw-bytes.test @@ -0,0 +1,15 @@ +; RUN: llvm-pdbutil bytes -byte-range=20-60 %p/Inputs/empty.pdb | FileCheck --check-prefix=VALID %s +; RUN: not llvm-pdbutil bytes -byte-range=100-20 %p/Inputs/empty.pdb 2>&1 | FileCheck --check-prefix=INVALID %s +; RUN: not llvm-pdbutil bytes -byte-range=100000-200000 %p/Inputs/empty.pdb 2>&1 | FileCheck --check-prefix=INVALID-RANGE %s + + +VALID: MSF Bytes +VALID-NEXT: ============================================================ +VALID-NEXT: Bytes ( +VALID-NEXT: 0014: 372E3030 0D0A1A44 53000000 00100000 02000000 19000000 88000000 00000000 |7.00...DS.......................| +VALID-NEXT: 0034: 18000000 00000000 00 |.........| +VALID-NEXT: ) + +INVALID: llvm-pdbutil: Invalid byte range specified. Max < Min + +INVALID-RANGE: llvm-pdbutil: Invalid byte range specified. Requested byte larger than file size -- cgit v1.2.3