summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/source/Expression/IRExecutionUnit.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/lldb/source/Expression/IRExecutionUnit.cpp b/lldb/source/Expression/IRExecutionUnit.cpp
index c4ce3388c35..ef8c8da0eda 100644
--- a/lldb/source/Expression/IRExecutionUnit.cpp
+++ b/lldb/source/Expression/IRExecutionUnit.cpp
@@ -564,6 +564,8 @@ IRExecutionUnit::MemoryManager::deallocateFunctionBody(void *Body)
lldb::addr_t
IRExecutionUnit::GetRemoteAddressForLocal (lldb::addr_t local_address)
{
+ Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
+
for (AllocationRecord &record : m_records)
{
if (local_address >= record.m_host_address &&
@@ -571,9 +573,22 @@ IRExecutionUnit::GetRemoteAddressForLocal (lldb::addr_t local_address)
{
if (record.m_process_address == LLDB_INVALID_ADDRESS)
return LLDB_INVALID_ADDRESS;
+
+ lldb::addr_t ret = record.m_process_address + (local_address - record.m_host_address);
+
+ if (log)
+ {
+ log->Printf("IRExecutionUnit::GetRemoteAddressForLocal() found 0x%" PRIx64 " in [0x%" PRIx64 "..0x%" PRIx64 "], and returned 0x%" PRIx64 " from [0x%" PRIx64 "..0x%" PRIx64 "].",
+ local_address,
+ (unsigned long long)record.m_host_address,
+ (unsigned long long)record.m_host_address + (unsigned long long)record.m_size,
+ ret,
+ record.m_process_address,
+ record.m_process_address + record.m_size);
+ }
+
+ return ret;
}
-
- return record.m_process_address + (local_address - record.m_host_address);
}
return LLDB_INVALID_ADDRESS;
OpenPOWER on IntegriCloud