LLDB mainline
|
Public Member Functions | |
MemoryManager (IRExecutionUnit &parent) | |
~MemoryManager () override | |
uint8_t * | allocateCodeSection (uintptr_t Size, unsigned Alignment, unsigned SectionID, llvm::StringRef SectionName) override |
Allocate space for executable code, and add it to the m_spaceBlocks map. | |
uint8_t * | allocateDataSection (uintptr_t Size, unsigned Alignment, unsigned SectionID, llvm::StringRef SectionName, bool IsReadOnly) override |
Allocate space for data, and add it to the m_spaceBlocks map. | |
bool | finalizeMemory (std::string *ErrMsg) override |
Called when object loading is complete and section page permissions can be applied. | |
void | registerEHFrames (uint8_t *Addr, uint64_t LoadAddr, size_t Size) override |
void | deregisterEHFrames () override |
uint64_t | getSymbolAddress (const std::string &Name) override |
uint64_t | GetSymbolAddressAndPresence (const std::string &Name, bool &missing_weak) |
llvm::JITSymbol | findSymbol (const std::string &Name) override |
void * | getPointerToNamedFunction (const std::string &Name, bool AbortOnFailure=true) override |
Private Attributes | |
std::unique_ptr< SectionMemoryManager > | m_default_mm_up |
The memory allocator to use in actually creating space. | |
IRExecutionUnit & | m_parent |
The execution unit this is a proxy for. |
Definition at line 243 of file IRExecutionUnit.h.
IRExecutionUnit::MemoryManager::MemoryManager | ( | IRExecutionUnit & | parent | ) |
Definition at line 512 of file IRExecutionUnit.cpp.
References lldb_private::IRExecutionUnit::IRExecutionUnit(), m_default_mm_up, and m_parent.
|
overridedefault |
|
override |
Allocate space for executable code, and add it to the m_spaceBlocks map.
[in] | Size | The size of the area. |
[in] | Alignment | The required alignment of the area. |
[in] | SectionID | A unique identifier for the section. |
Definition at line 555 of file IRExecutionUnit.cpp.
References lldb_private::IRExecutionUnit::Code, lldb_private::Expressions, lldb_private::GetLog(), lldb_private::IRExecutionUnit::GetSectionTypeFromSectionName(), LLDB_LOGF, m_default_mm_up, and m_parent.
|
override |
Allocate space for data, and add it to the m_spaceBlocks map.
[in] | Size | The size of the area. |
[in] | Alignment | The required alignment of the area. |
[in] | SectionID | A unique identifier for the section. |
[in] | IsReadOnly | Flag indicating the section is read-only. |
Definition at line 585 of file IRExecutionUnit.cpp.
References lldb_private::IRExecutionUnit::Data, lldb_private::Expressions, lldb_private::GetLog(), lldb_private::IRExecutionUnit::GetSectionTypeFromSectionName(), LLDB_LOGF, m_default_mm_up, and m_parent.
|
inlineoverride |
Definition at line 307 of file IRExecutionUnit.h.
|
inlineoverride |
Called when object loading is complete and section page permissions can be applied.
Currently unimplemented for LLDB.
[out] | ErrMsg | The error that prevented the page protection from succeeding. |
Definition at line 296 of file IRExecutionUnit.h.
|
override |
Definition at line 996 of file IRExecutionUnit.cpp.
References GetSymbolAddressAndPresence().
|
override |
Definition at line 1036 of file IRExecutionUnit.cpp.
References getSymbolAddress().
|
override |
Definition at line 1008 of file IRExecutionUnit.cpp.
References GetSymbolAddressAndPresence().
Referenced by getPointerToNamedFunction().
uint64_t IRExecutionUnit::MemoryManager::GetSymbolAddressAndPresence | ( | const std::string & | Name, |
bool & | missing_weak ) |
Definition at line 1014 of file IRExecutionUnit.cpp.
References lldb_private::Expressions, lldb_private::GetLog(), LLDB_INVALID_ADDRESS, LLDB_LOGF, and m_parent.
Referenced by findSymbol(), and getSymbolAddress().
|
inlineoverride |
Definition at line 305 of file IRExecutionUnit.h.
|
private |
The memory allocator to use in actually creating space.
All calls are passed through to it.
Definition at line 322 of file IRExecutionUnit.h.
Referenced by allocateCodeSection(), allocateDataSection(), and MemoryManager().
|
private |
The execution unit this is a proxy for.
Definition at line 329 of file IRExecutionUnit.h.
Referenced by allocateCodeSection(), allocateDataSection(), GetSymbolAddressAndPresence(), and MemoryManager().