blob: db9868db4a7e114d6143ddeece6aed8747e370aa [file] [log] [blame]
Zachary Turner7120a472016-06-06 20:37:05 +00001//===- YAMLOutputStyle.h -------------------------------------- *- C++ --*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H
11#define LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H
12
13#include "OutputStyle.h"
14#include "PdbYaml.h"
15
Zachary Turnera9054dd2017-01-11 00:35:43 +000016#include "llvm/DebugInfo/CodeView/CVTypeDumper.h"
Zachary Turner7120a472016-06-06 20:37:05 +000017#include "llvm/Support/ScopedPrinter.h"
18#include "llvm/Support/YAMLTraits.h"
19
20namespace llvm {
21namespace pdb {
22class YAMLOutputStyle : public OutputStyle {
23public:
24 YAMLOutputStyle(PDBFile &File);
25
Zachary Turnera30bd1a2016-06-30 17:42:48 +000026 Error dump() override;
Zachary Turner7120a472016-06-06 20:37:05 +000027
28private:
Zachary Turner760ad4d2017-01-20 22:42:09 +000029 Error dumpStringTable();
Zachary Turnera30bd1a2016-06-30 17:42:48 +000030 Error dumpFileHeaders();
31 Error dumpStreamMetadata();
32 Error dumpStreamDirectory();
Zachary Turner8848a7a2016-07-06 18:05:57 +000033 Error dumpPDBStream();
Zachary Turnerdbeaea72016-07-11 21:45:26 +000034 Error dumpDbiStream();
Zachary Turnerac5763e2016-08-18 16:49:29 +000035 Error dumpTpiStream();
Zachary Turnerde9ba152016-09-15 18:22:31 +000036 Error dumpIpiStream();
Zachary Turnera30bd1a2016-06-30 17:42:48 +000037
38 void flush();
39
Zachary Turner7120a472016-06-06 20:37:05 +000040 PDBFile &File;
41 llvm::yaml::Output Out;
42
43 yaml::PdbObject Obj;
44};
45} // namespace pdb
46} // namespace llvm
47
48#endif // LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H