LLVM: include/llvm/DebugInfo/Symbolize/DIPrinter.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_DEBUGINFO_SYMBOLIZE_DIPRINTER_H
15#define LLVM_DEBUGINFO_SYMBOLIZE_DIPRINTER_H
16
20#include
21#include
22
23namespace llvm {
30
32
34
40
42public:
45
50 const std::vector &Locals) = 0;
52 const std::vector &Locations) = 0;
53
56
59};
60
68
70
72protected:
76
85
86private:
87 void printHeader(std::optional<uint64_t> Address);
88
89public:
92
97 const std::vector &Locals) override;
99 const std::vector &Locations) override;
100
103
106};
107
109private:
111 void printStartAddress(const DILineInfo &Info) override;
112 void printFooter() override;
113
114public:
117};
118
120private:
122
123public:
126};
127
129private:
132 std::unique_ptrjson::Array ObjectList;
133
137 OS << '\n';
138 }
139
140public:
142 : OS(OS), Config(Config) {}
143
148 const std::vector &Locals) override;
150 const std::vector &Locations) override;
151
154
155 void listBegin() override;
156 void listEnd() override;
157};
158}
159}
160
161#endif
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
Analysis containing CSE Info
This file supports working with JSON data.
A format-neutral container for inlined code description.
Base class for error info classes.
Base class for user error types.
StringRef - Represent a constant reference to a string, i.e.
json::OStream allows writing well-formed JSON without materializing all structures as json::Value ahe...
LLVM_ABI void value(const Value &V)
Emit a self-contained value (number, string, vector etc).
A Value is an JSON value of unknown type.
This class implements an extremely fast bulk output stream that can only output to a stream.
virtual void print(const Request &Request, const std::vector< DILocal > &Locals)=0
virtual void listBegin()=0
virtual void print(const Request &Request, const DIGlobal &Global)=0
virtual void print(const Request &Request, const DILineInfo &Info)=0
virtual ~DIPrinter()=default
virtual void print(const Request &Request, const DIInliningInfo &Info)=0
virtual bool printError(const Request &Request, const ErrorInfoBase &ErrorInfo)=0
virtual void print(const Request &Request, const std::vector< DILineInfo > &Locations)=0
GNUPrinter(raw_ostream &OS, ErrorHandler EH, PrinterConfig &Config)
Definition DIPrinter.h:124
JSONPrinter(raw_ostream &OS, PrinterConfig &Config)
Definition DIPrinter.h:141
LLVMPrinter(raw_ostream &OS, ErrorHandler EH, PrinterConfig &Config)
Definition DIPrinter.h:115
void printContext(SourceCode SourceCode)
virtual void printFooter()
Definition DIPrinter.h:84
virtual void printStartAddress(const DILineInfo &Info)
Definition DIPrinter.h:83
PlainPrinterBase(raw_ostream &OS, ErrorHandler EH, PrinterConfig &Config)
Definition DIPrinter.h:90
virtual void printSimpleLocation(StringRef Filename, const DILineInfo &Info)=0
void printVerbose(StringRef Filename, const DILineInfo &Info)
void printFunctionName(StringRef FunctionName, bool Inlined)
void listEnd() override
Definition DIPrinter.h:105
void listBegin() override
Definition DIPrinter.h:104
raw_ostream & OS
Definition DIPrinter.h:73
ErrorHandler ErrHandler
Definition DIPrinter.h:74
PrinterConfig Config
Definition DIPrinter.h:75
Definition DIPrinter.h:31
std::function< void(const ErrorInfoBase &, StringRef)> ErrorHandler
Definition DIPrinter.h:69
This is an optimization pass for GlobalISel generic memory operations.
@ Global
Append to llvm.global_dtors.
Container for description of a global variable.
A format-neutral container for source line information.
Definition DIPrinter.h:61
bool PrintAddress
Definition DIPrinter.h:62
bool Pretty
Definition DIPrinter.h:64
int SourceContextLines
Definition DIPrinter.h:66
bool PrintFunctions
Definition DIPrinter.h:63
bool Verbose
Definition DIPrinter.h:65
Definition DIPrinter.h:35
StringRef Symbol
Definition DIPrinter.h:38
StringRef ModuleName
Definition DIPrinter.h:36
std::optional< uint64_t > Address
Definition DIPrinter.h:37