forked from OSchip/llvm-project
Dump JIT memory requirements when "log enable lldb expr" logging is enabled.
Correctly handle invalid 32-bit mmap fail return value in ProcessGDBRemote. llvm-svn: 131394
This commit is contained in:
parent
17a0cb68c9
commit
1cfca1dc09
|
@ -620,9 +620,14 @@ ClangExpressionParser::MakeJIT (lldb::addr_t &func_allocation_addr,
|
|||
|
||||
std::map<uint8_t *, uint8_t *>::iterator fun_pos = jit_memory_manager->m_functions.begin();
|
||||
std::map<uint8_t *, uint8_t *>::iterator fun_end = jit_memory_manager->m_functions.end();
|
||||
|
||||
|
||||
for (; fun_pos != fun_end; ++fun_pos)
|
||||
alloc_size += (*fun_pos).second - (*fun_pos).first;
|
||||
{
|
||||
size_t mem_size = fun_pos->second - fun_pos->first;
|
||||
if (log)
|
||||
log->Printf ("JIT memory: [%p - %p) size = %zu", fun_pos->first, fun_pos->second, mem_size);
|
||||
alloc_size += mem_size;
|
||||
}
|
||||
|
||||
Error alloc_error;
|
||||
func_allocation_addr = exc_context.process->AllocateMemory (alloc_size,
|
||||
|
|
|
@ -1637,7 +1637,13 @@ ProcessGDBRemote::DoAllocateMemory (size_t size, uint32_t permissions, Error &er
|
|||
if (result == eExecutionCompleted)
|
||||
{
|
||||
allocated_addr = return_value_sp->GetScalar().ULongLong();
|
||||
m_addr_to_mmap_size[allocated_addr] = size;
|
||||
if (GetAddressByteSize() == 4)
|
||||
{
|
||||
if (allocated_addr == UINT32_MAX)
|
||||
allocated_addr = LLDB_INVALID_ADDRESS;
|
||||
}
|
||||
if (allocated_addr != LLDB_INVALID_ADDRESS)
|
||||
m_addr_to_mmap_size[allocated_addr] = size;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue