llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Jason Molenda (jasonmolenda)

<details>
<summary>Changes</summary>

In https://reviews.llvm.org/D151292 I added the ability to track address masks 
separately for high and low memory addresses, a capability of AArch64.  I did 
my testing with manual address mask settings (via 
target.process.highmem-virtual-addressable-bits) but didn't have a real 
corefile that included this metadata and required it.

My intention is that when the high address mask isn't specified, by the user 
(via the setting) or the Process plugin, we fall back to using the low address 
mask.  The low and high address mask is the same for almost all environments.

But the patch I wrote never uses the Process plugin high address mask if it was 
set, e.g. from corefile metadata.  This patch corrects that.

I also have an old patch in Phabractor that was approved to add FixAddress 
methods to SBProcess; I need to pick that patch up and finish it (I wanted to 
add an enum to specify which mask is being requested iirc), so I can do address 
masks tests in API tests.

rdar://120926000

---
Full diff: https://github.com/llvm/llvm-project/pull/78379.diff


1 Files Affected:

- (modified) lldb/source/Target/Process.cpp (+4) 


``````````diff
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index aa3b04c43cc5cd..8158bf61258378 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -5694,12 +5694,16 @@ lldb::addr_t Process::GetDataAddressMask() {
 lldb::addr_t Process::GetHighmemCodeAddressMask() {
   if (uint32_t num_bits_setting = GetHighmemVirtualAddressableBits())
     return ~((1ULL << num_bits_setting) - 1);
+  if (m_highmem_code_address_mask)
+    return m_highmem_code_address_mask;
   return GetCodeAddressMask();
 }
 
 lldb::addr_t Process::GetHighmemDataAddressMask() {
   if (uint32_t num_bits_setting = GetHighmemVirtualAddressableBits())
     return ~((1ULL << num_bits_setting) - 1);
+  if (m_highmem_data_address_mask)
+    return m_highmem_data_address_mask;
   return GetDataAddressMask();
 }
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/78379
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to