blob: 4ba3bc97d85b65dd88bba48d22ec273517f2f968 [file] [log] [blame]
Zachary Turnera9054dd2017-01-11 00:35:43 +00001//===- PrettyVariableDumper.h - PDBSymDumper variable dumper ----*- C++ -*-===//
Zachary Turner29c69102015-02-23 05:58:34 +00002//
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
Zachary Turnera9054dd2017-01-11 00:35:43 +000010#ifndef LLVM_TOOLS_LLVMPDBDUMP_PRETTYVARIABLEDUMPER_H
11#define LLVM_TOOLS_LLVMPDBDUMP_PRETTYVARIABLEDUMPER_H
Zachary Turner29c69102015-02-23 05:58:34 +000012
13#include "llvm/DebugInfo/PDB/PDBSymDumper.h"
Zachary Turner29c69102015-02-23 05:58:34 +000014
15namespace llvm {
16
Mehdi Aminib550cb12016-04-18 09:17:29 +000017class StringRef;
Zachary Turnerec28fc32016-05-04 20:32:13 +000018
19namespace pdb {
20
Zachary Turner2d11c202015-02-27 09:15:59 +000021class LinePrinter;
22
Zachary Turner29c69102015-02-23 05:58:34 +000023class VariableDumper : public PDBSymDumper {
24public:
Zachary Turner2d11c202015-02-27 09:15:59 +000025 VariableDumper(LinePrinter &P);
Zachary Turner29c69102015-02-23 05:58:34 +000026
Zachary Turner4dc4f012017-04-13 21:11:00 +000027 void start(const PDBSymbolData &Var, uint32_t Offset = 0);
28 void start(const PDBSymbolTypeVTable &Var, uint32_t Offset = 0);
Zachary Turner29c69102015-02-23 05:58:34 +000029
Adrian McCarthy08eb3432017-04-10 16:43:09 +000030 void dump(const PDBSymbolTypeArray &Symbol) override;
Zachary Turnerb52d08d2015-03-01 06:51:29 +000031 void dump(const PDBSymbolTypeBuiltin &Symbol) override;
32 void dump(const PDBSymbolTypeEnum &Symbol) override;
33 void dump(const PDBSymbolTypeFunctionSig &Symbol) override;
34 void dump(const PDBSymbolTypePointer &Symbol) override;
35 void dump(const PDBSymbolTypeTypedef &Symbol) override;
36 void dump(const PDBSymbolTypeUDT &Symbol) override;
Zachary Turner29c69102015-02-23 05:58:34 +000037
Adrian McCarthy08eb3432017-04-10 16:43:09 +000038 void dumpRight(const PDBSymbolTypeArray &Symbol) override;
39 void dumpRight(const PDBSymbolTypeFunctionSig &Symbol) override;
40 void dumpRight(const PDBSymbolTypePointer &Symbol) override;
41
Zachary Turner29c69102015-02-23 05:58:34 +000042private:
Zachary Turnerb52d08d2015-03-01 06:51:29 +000043 void dumpSymbolTypeAndName(const PDBSymbol &Type, StringRef Name);
Zachary Turner2d11c202015-02-27 09:15:59 +000044
45 LinePrinter &Printer;
Zachary Turner29c69102015-02-23 05:58:34 +000046};
47}
Zachary Turnerec28fc32016-05-04 20:32:13 +000048}
Zachary Turner29c69102015-02-23 05:58:34 +000049#endif