VariableDumper.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //===- VariableDumper.h - PDBSymDumper implementation for types -*- 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. #ifndef LLVM_TOOLS_LLVMPDBDUMP_VARIABLEDUMPER_H
  10. #define LLVM_TOOLS_LLVMPDBDUMP_VARIABLEDUMPER_H
  11. #include "llvm/DebugInfo/PDB/PDBSymDumper.h"
  12. #include "llvm/ADT/StringRef.h"
  13. namespace llvm {
  14. class LinePrinter;
  15. class VariableDumper : public PDBSymDumper {
  16. public:
  17. VariableDumper(LinePrinter &P);
  18. void start(const PDBSymbolData &Var);
  19. void dump(const PDBSymbolTypeBuiltin &Symbol) override;
  20. void dump(const PDBSymbolTypeEnum &Symbol) override;
  21. void dump(const PDBSymbolTypeFunctionSig &Symbol) override;
  22. void dump(const PDBSymbolTypePointer &Symbol) override;
  23. void dump(const PDBSymbolTypeTypedef &Symbol) override;
  24. void dump(const PDBSymbolTypeUDT &Symbol) override;
  25. private:
  26. void dumpSymbolTypeAndName(const PDBSymbol &Type, StringRef Name);
  27. bool tryDumpFunctionPointer(const PDBSymbol &Type, StringRef Name);
  28. LinePrinter &Printer;
  29. };
  30. }
  31. #endif