diff options
author | David Spickett <david.spickett@linaro.org> | 2021-11-26 15:16:03 +0000 |
---|---|---|
committer | David Spickett <david.spickett@linaro.org> | 2021-11-26 15:35:02 +0000 |
commit | 0df522969a7a0128052bd79182c8d58e00556e2f (patch) | |
tree | ec8b76aa1b669cb8cc2c2c00b1b49314c9cec2d7 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h | |
parent | 34cc210aa8af2fd33598e5559d0f5b51f9423dd6 (diff) | |
download | llvm-0df522969a7a0128052bd79182c8d58e00556e2f.zip llvm-0df522969a7a0128052bd79182c8d58e00556e2f.tar.gz llvm-0df522969a7a0128052bd79182c8d58e00556e2f.tar.bz2 |
Revert "Reland "[lldb] Remove non address bits when looking up memory regions""
This reverts commit fac3f20de55769d028bd92220e74f22fa57dd4b2.
I found this has broken how we detect the last memory region in
GetMemoryRegions/"memory region" command.
When you're debugging an AArch64 system with pointer authentication,
the ABI plugin will remove the top bit from the end address of the last
user mapped area.
(lldb)
[0x0000fffffffdf000-0x0001000000000000) rw- [stack]
ABI plugin removes anything above the 48th bit (48 bit virtual addresses
by default on AArch64, leaving an address of 0.
(lldb)
[0x0000000000000000-0x0000000000400000) ---
You get back a mapping for 0 and get into an infinite loop.
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 9b0ae65..488336b 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h @@ -144,6 +144,9 @@ 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 @@ -417,9 +420,6 @@ 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; |