aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
diff options
context:
space:
mode:
authorDavid Spickett <david.spickett@linaro.org>2021-11-03 10:14:13 +0000
committerDavid Spickett <david.spickett@linaro.org>2021-11-03 11:10:42 +0000
commit6f5ce43b433706c3ae5c37022d6c0964b6bfadf8 (patch)
tree939255567b6d25b73fcb719437f45fcaae41eef2 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
parent1febf42f03f664ec84aedf0ece3b29f92b10dce9 (diff)
downloadllvm-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.h6
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 &region_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 &region_info) override;
+
private:
// For ProcessGDBRemote only
std::string m_partial_profile_data;