LLVM  12.0.0git
Public Member Functions | List of all members
llvm::AddressesMap Class Referenceabstract

AddressesMap represents information about valid addresses used by debug information. More...

#include "llvm/DWARFLinker/DWARFLinker.h"

Public Member Functions

virtual ~AddressesMap ()
 
virtual bool areRelocationsResolved () const =0
 Returns true if represented addresses are from linked file. More...
 
virtual bool hasValidRelocs (bool ResetRelocsPtr=true)=0
 Checks that there are valid relocations against a .debug_info section. More...
 
virtual bool hasValidRelocationAt (uint64_t StartOffset, uint64_t EndOffset, CompileUnit::DIEInfo &Info)=0
 Checks that there is a relocation against .debug_info table between StartOffset and NextOffset. More...
 
virtual bool applyValidRelocs (MutableArrayRef< char > Data, uint64_t BaseOffset, bool IsLittleEndian)=0
 Apply the valid relocations to the buffer Data, taking into account that Data is at BaseOffset in the debug_info section. More...
 
virtual RangesTygetValidAddressRanges ()=0
 Returns all valid functions address ranges(i.e., those ranges which points to sections with code). More...
 
virtual void clear ()=0
 Erases all data. More...
 

Detailed 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.

Definition at line 54 of file DWARFLinker.h.

Constructor & Destructor Documentation

◆ ~AddressesMap()

llvm::AddressesMap::~AddressesMap ( )
virtual

Definition at line 135 of file DWARFLinker.cpp.

Member Function Documentation

◆ applyValidRelocs()

virtual bool llvm::AddressesMap::applyValidRelocs ( MutableArrayRef< char Data,
uint64_t  BaseOffset,
bool  IsLittleEndian 
)
pure virtual

Apply the valid relocations to the buffer Data, taking into account that Data is at BaseOffset in the debug_info section.

This function must be called with monotonic BaseOffset values.

Returns
true whether any reloc has been applied.

◆ areRelocationsResolved()

virtual bool llvm::AddressesMap::areRelocationsResolved ( ) const
pure virtual

Returns true if represented addresses are from linked file.

Returns false if represented addresses are from not-linked object file.

◆ clear()

virtual void llvm::AddressesMap::clear ( )
pure virtual

Erases all data.

Referenced by llvm::DWARFLinker::setObjectPrefixMap().

◆ getValidAddressRanges()

virtual RangesTy& llvm::AddressesMap::getValidAddressRanges ( )
pure virtual

Returns all valid functions address ranges(i.e., those ranges which points to sections with code).

Referenced by llvm::patchStmtList().

◆ hasValidRelocationAt()

virtual bool llvm::AddressesMap::hasValidRelocationAt ( uint64_t  StartOffset,
uint64_t  EndOffset,
CompileUnit::DIEInfo Info 
)
pure virtual

Checks that there is a relocation against .debug_info table between StartOffset and NextOffset.

This function must be called with offsets in strictly ascending order because it never looks back at relocations it already 'went past'.

Returns
true and sets Info.InDebugMap if it is the case.

◆ hasValidRelocs()

virtual bool llvm::AddressesMap::hasValidRelocs ( bool  ResetRelocsPtr = true)
pure virtual

Checks that there are valid relocations against a .debug_info section.

Reset current relocation pointer if neccessary.


The documentation for this class was generated from the following files: