diff options
author | Rui Ueyama <ruiu@google.com> | 2016-06-03 20:48:51 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2016-06-03 20:48:51 +0000 |
commit | fd97bf1f766550b1fefebbdf8aa29c2e8649fd3d (patch) | |
tree | fd4159f3f9245f2f8b201975021e71d982184bb1 /llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp | |
parent | bc929e47659dcf318641892f44f424e07e1bc051 (diff) | |
download | bcm5719-llvm-fd97bf1f766550b1fefebbdf8aa29c2e8649fd3d.tar.gz bcm5719-llvm-fd97bf1f766550b1fefebbdf8aa29c2e8649fd3d.zip |
pdbdump: print out TPI hashes.
Differential Revision: http://reviews.llvm.org/D20945
llvm-svn: 271736
Diffstat (limited to 'llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp')
-rw-r--r-- | llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp b/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp index 75e8815de95..2c3dabf613b 100644 --- a/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp +++ b/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp @@ -264,6 +264,23 @@ Error LLVMOutputStyle::dumpNamedStream() { return Error::success(); } +static void printTypeIndexOffset(raw_ostream &OS, + const TypeIndexOffset &TIOff) { + OS << "{" << TIOff.Type.getIndex() << ", " << TIOff.Offset << "}"; +} + +static void dumpTpiHash(ScopedPrinter &P, TpiStream &Tpi) { + if (!opts::DumpTpiHash) + return; + DictScope DD(P, "Hash"); + codeview::FixedStreamArray<support::ulittle32_t> S = Tpi.getHashValues(); + P.printList("Values", Tpi.getHashValues()); + P.printList("Type Index Offsets", Tpi.getTypeIndexOffsets(), + printTypeIndexOffset); + P.printList("Hash Adjustments", Tpi.getHashAdjustments(), + printTypeIndexOffset); +} + Error LLVMOutputStyle::dumpTpiStream(uint32_t StreamIdx) { assert(StreamIdx == StreamTPI || StreamIdx == StreamIPI); @@ -309,6 +326,7 @@ Error LLVMOutputStyle::dumpTpiStream(uint32_t StreamIdx) { if (DumpRecordBytes) P.printBinaryBlock("Bytes", Type.Data); } + dumpTpiHash(P, Tpi); if (HadError) return make_error<RawError>(raw_error_code::corrupt_file, "TPI stream contained corrupt record"); @@ -325,6 +343,7 @@ Error LLVMOutputStyle::dumpTpiStream(uint32_t StreamIdx) { TD.dump(Type); TD.setPrinter(OldP); + dumpTpiHash(P, Tpi); if (HadError) return make_error<RawError>(raw_error_code::corrupt_file, "TPI stream contained corrupt record"); |