1 //===- llvm/DebugInfo/Symbolize/DIPrinter.h ---------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file declares the DIPrinter class, which is responsible for printing
11 // structures defined in DebugInfo/DIContext.h
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_DEBUGINFO_SYMBOLIZE_DIPRINTER_H
16 #define LLVM_DEBUGINFO_SYMBOLIZE_DIPRINTER_H
18 #include "llvm/Support/raw_ostream.h"
29 bool PrintFunctionNames;
31 int PrintSourceContext;
33 void print(const DILineInfo &Info, bool Inlined);
34 void printContext(const std::string &FileName, int64_t Line);
37 DIPrinter(raw_ostream &OS, bool PrintFunctionNames = true,
38 bool PrintPretty = false, int PrintSourceContext = 0)
39 : OS(OS), PrintFunctionNames(PrintFunctionNames),
40 PrintPretty(PrintPretty), PrintSourceContext(PrintSourceContext) {}
42 DIPrinter &operator<<(const DILineInfo &Info);
43 DIPrinter &operator<<(const DIInliningInfo &Info);
44 DIPrinter &operator<<(const DIGlobal &Global);