void
RecordingMemoryManager::ReportAllocations (llvm::ExecutionEngine &engine)
{
    for (AllocationList::iterator ai = m_allocations.begin(), ae = m_allocations.end();
            ai != ae;
            ++ai)
    {
        if (!ai->m_allocated)
            continue;

        engine.mapSectionAddress((void*)ai->m_local_start, ai->m_remote_start);
    }
}
예제 #2
0
void
IRExecutionUnit::ReportAllocations (llvm::ExecutionEngine &engine)
{
    for (AllocationRecord &record : m_records)
    {
        if (record.m_process_address == LLDB_INVALID_ADDRESS)
            continue;

        if (record.m_section_id == eSectionIDInvalid)
            continue;

        engine.mapSectionAddress((void*)record.m_host_address, record.m_process_address);
    }

    // Trigger re-application of relocations.
    engine.finalizeObject();
}