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.