示例#1
0
static void dumpTpiStream(ScopedPrinter &P, PDBFile &File) {
  if (!opts::DumpTypeStream)
    return;

  DictScope D(P, "Type Info Stream");

  TpiStream &Tpi = File.getPDBTpiStream();
  P.printNumber("TPI Version", Tpi.getTpiVersion());
  P.printNumber("Record count", Tpi.NumTypeRecords());

  if (!opts::DumpTpiRecordBytes)
    return;

  ListScope L(P, "Records");
  for (auto &Type : Tpi.types()) {
    DictScope DD(P, "");
    P.printHex("Kind", unsigned(Type.Leaf));
    P.printBinaryBlock("Bytes", Type.LeafData);
  }
}