class AddressesMap
Declaration
class AddressesMap { /* full declaration omitted */ };
Description
AddressesMap represents information about valid addresses used by debug information. Valid addresses are those which points to live code sections. i.e. relocations for these addresses point into sections which would be/are placed into resulting binary.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:45
Method Overview
- public virtual bool applyValidRelocs(MutableArrayRef<char> Data, uint64_t BaseOffset, bool IsLittleEndian)
- public virtual void clear()
- public virtual llvm::RangesTy & getValidAddressRanges()
- public virtual bool hasValidRelocs()
- public virtual bool isLiveSubprogram(const llvm::DWARFDie & DIE, CompileUnit::DIEInfo & Info)
- public virtual bool isLiveVariable(const llvm::DWARFDie & DIE, CompileUnit::DIEInfo & Info)
- public virtual llvm::Expected<uint64_t> relocateIndexedAddr(uint64_t StartOffset, uint64_t EndOffset)
- public virtual ~AddressesMap()
Methods
¶virtual bool applyValidRelocs(
MutableArrayRef<char> Data,
uint64_t BaseOffset,
bool IsLittleEndian)
virtual bool applyValidRelocs(
MutableArrayRef<char> Data,
uint64_t BaseOffset,
bool IsLittleEndian)
Description
Apply the valid relocations to the buffer \p Data, taking into account that Data is at \p BaseOffset in the .debug_info section.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:69
Parameters
- MutableArrayRef<char> Data
- uint64_t BaseOffset
- bool IsLittleEndian
Returns
true whether any reloc has been applied.
¶virtual void clear()
virtual void clear()
Description
Erases all data.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:81
¶virtual llvm::RangesTy& getValidAddressRanges()
virtual llvm::RangesTy& getValidAddressRanges()
Description
Returns all valid functions address ranges(i.e., those ranges which points to sections with code).
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:78
¶virtual bool hasValidRelocs()
virtual bool hasValidRelocs()
Description
Checks that there are valid relocations against a .debug_info section.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:51
¶virtual bool isLiveSubprogram(
const llvm::DWARFDie& DIE,
CompileUnit::DIEInfo& Info)
virtual bool isLiveSubprogram(
const llvm::DWARFDie& DIE,
CompileUnit::DIEInfo& Info)
Description
Checks that the specified subprogram \p DIE references live code section. Allowed kind of input die: DW_TAG_subprogram, DW_TAG_label.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:62
Parameters
- const llvm::DWARFDie& DIE
- CompileUnit::DIEInfo& Info
Returns
true and sets Info.InDebugMap if it is the case.
¶virtual bool isLiveVariable(
const llvm::DWARFDie& DIE,
CompileUnit::DIEInfo& Info)
virtual bool isLiveVariable(
const llvm::DWARFDie& DIE,
CompileUnit::DIEInfo& Info)
Description
Checks that the specified variable \p DIE references live code section. Allowed kind of input die: DW_TAG_variable, DW_TAG_constant.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:56
Parameters
- const llvm::DWARFDie& DIE
- CompileUnit::DIEInfo& Info
Returns
true and sets Info.InDebugMap if it is the case.
¶virtual llvm::Expected<uint64_t>
relocateIndexedAddr(uint64_t StartOffset,
uint64_t EndOffset)
virtual llvm::Expected<uint64_t>
relocateIndexedAddr(uint64_t StartOffset,
uint64_t EndOffset)
Description
Relocate the given address offset if a valid relocation exists.
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:73
Parameters
- uint64_t StartOffset
- uint64_t EndOffset
¶virtual ~AddressesMap()
virtual ~AddressesMap()
Declared at: llvm/include/llvm/DWARFLinker/DWARFLinker.h:47