|
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 1001 of file IRExecutionUnit.cpp.
References GetSymbolAddressAndPresence().
|
override |
Definition at line 1041 of file IRExecutionUnit.cpp.
References getSymbolAddress().
|
override |
Definition at line 1013 of file IRExecutionUnit.cpp.
References GetSymbolAddressAndPresence().
Referenced by getPointerToNamedFunction().
| uint64_t IRExecutionUnit::MemoryManager::GetSymbolAddressAndPresence | ( | const std::string & | Name, |
| bool & | missing_weak ) |
Definition at line 1019 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().