[PDB] Add an explain subcommand.
authorZachary Turner <zturner@google.com>
Thu, 29 Mar 2018 16:28:20 +0000 (16:28 +0000)
committerZachary Turner <zturner@google.com>
Thu, 29 Mar 2018 16:28:20 +0000 (16:28 +0000)
commitea40f40e1b024598fb1dbd56211c2f24cb703df2
tree9229b61a4aa5ff8bab244758d5845b0b05b11484
parentc7cc87922e7e28487fd93b010d6de9ec7c0ef318
[PDB] Add an explain subcommand.

When investigating various things, we often have a file offset
and what to know what's in the PDB at that address.  For example
we may be doing a binary comparison of two LLD-generated PDBs
to look for sources of non-determinism, or we may wish to compare
an LLD-generated PDB with a Microsoft generated PDB for sources
of byte-for-byte incompatibility.  In these cases, we can do a
binary diff of the two files, and once we find a mismatched byte
we can use explain to figure out what that byte is, immediately
honining in on the problem.

This patch implements this by trying to narrow the meaning of
a particular file offset down as much as possible.

Differential Revision: https://reviews.llvm.org/D44959

llvm-svn: 328799
llvm/test/tools/llvm-pdbdump/explain.test [new file with mode: 0644]
llvm/tools/llvm-pdbutil/CMakeLists.txt
llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp [new file with mode: 0644]
llvm/tools/llvm-pdbutil/ExplainOutputStyle.h [new file with mode: 0644]
llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
llvm/tools/llvm-pdbutil/llvm-pdbutil.h