diff options
author | David Spickett <david.spickett@linaro.org> | 2021-11-03 10:14:13 +0000 |
---|---|---|
committer | David Spickett <david.spickett@linaro.org> | 2021-11-03 11:10:42 +0000 |
commit | 6f5ce43b433706c3ae5c37022d6c0964b6bfadf8 (patch) | |
tree | 939255567b6d25b73fcb719437f45fcaae41eef2 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h | |
parent | 1febf42f03f664ec84aedf0ece3b29f92b10dce9 (diff) | |
download | llvm-6f5ce43b433706c3ae5c37022d6c0964b6bfadf8.zip llvm-6f5ce43b433706c3ae5c37022d6c0964b6bfadf8.tar.gz llvm-6f5ce43b433706c3ae5c37022d6c0964b6bfadf8.tar.bz2 |
[lldb] Remove non address bits when looking up memory regions
On AArch64 we have various things using the non address bits
of pointers. This means when you lookup their containing region
you won't find it if you don't remove them.
This changes Process GetMemoryRegionInfo to a non virtual method
that uses the current ABI plugin to remove those bits. Then it
calls DoGetMemoryRegionInfo.
That function does the actual work and is virtual to be overriden
by Process implementations.
A test case is added that runs on AArch64 Linux using the top
byte ignore feature.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D102757
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h index 9e05834..8134bc6 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h @@ -144,9 +144,6 @@ public: lldb::addr_t DoAllocateMemory(size_t size, uint32_t permissions, Status &error) override; - Status GetMemoryRegionInfo(lldb::addr_t load_addr, - MemoryRegionInfo ®ion_info) override; - Status DoDeallocateMemory(lldb::addr_t ptr) override; // Process STDIO @@ -424,6 +421,9 @@ protected: Status DoWriteMemoryTags(lldb::addr_t addr, size_t len, int32_t type, const std::vector<uint8_t> &tags) override; + Status DoGetMemoryRegionInfo(lldb::addr_t load_addr, + MemoryRegionInfo ®ion_info) override; + private: // For ProcessGDBRemote only std::string m_partial_profile_data; |