LLVM: include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12#ifndef LLVM_DEBUGINFO_SYMBOLIZE_SYMBOLIZABLEOBJECTFILE_H
13#define LLVM_DEBUGINFO_SYMBOLIZE_SYMBOLIZABLEOBJECTFILE_H
14
19#include
20#include
21#include
22#include
23#include
24
25namespace llvm {
26
28
30
32public:
35 bool UntagAddresses);
36
39 bool UseSymbolTable) const override;
42 bool UseSymbolTable) const override;
44 std::vector
46 std::vectorobject::SectionedAddress
48
49
51
52
53
55
56private:
58 bool UseSymbolTable) const;
59
60 bool getNameFromSymbolTable(uint64_t Address, std::string &Name,
62 std::string &FileName) const;
63
64
69
70
72
74 std::unique_ptr DebugInfoContext;
75 bool UntagAddresses;
76
77 struct SymbolDesc {
79
80
82
84
85
87
89 return Addr != RHS.Addr ? Addr < RHS.Addr : Size < RHS.Size;
90 }
91 };
92 std::vector Symbols;
93
94 std::vector<std::pair<uint32_t, StringRef>> FileSymbols;
95
97 std::unique_ptr DICtx,
98 bool UntagAddresses);
99};
100
101}
102
103}
104
105#endif
A format-neutral container for inlined code description.
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
StringRef - Represent a constant reference to a string, i.e.
This class is the base class for all object file types.
This is a value type class that represents a single symbol in the list of symbols in the object file.
DIGlobal symbolizeData(object::SectionedAddress ModuleOffset) const override
DILineInfo symbolizeCode(object::SectionedAddress ModuleOffset, DILineInfoSpecifier LineInfoSpecifier, bool UseSymbolTable) const override
static Expected< std::unique_ptr< SymbolizableObjectFile > > create(const object::ObjectFile *Obj, std::unique_ptr< DIContext > DICtx, bool UntagAddresses)
std::vector< object::SectionedAddress > findSymbol(StringRef Symbol, uint64_t Offset) const override
uint64_t getModulePreferredBase() const override
std::vector< DILocal > symbolizeFrame(object::SectionedAddress ModuleOffset) const override
bool isWin32Module() const override
DIInliningInfo symbolizeInlinedCode(object::SectionedAddress ModuleOffset, DILineInfoSpecifier LineInfoSpecifier, bool UseSymbolTable) const override
bool operator<(const ELFSymbolRef &A, const ELFSymbolRef &B)
DILineInfoSpecifier::FunctionNameKind FunctionNameKind
This is an optimization pass for GlobalISel generic memory operations.
Container for description of a global variable.
Controls which fields of DILineInfo container should be filled with data.
A format-neutral container for source line information.