aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h')
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
index 7c3dfb1..eb33b52 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
@@ -137,6 +137,22 @@ public:
size_t DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
Status &error) override;
+ /// Override of ReadMemoryRanges that uses MultiMemRead to optimize this
+ /// operation.
+ llvm::SmallVector<llvm::MutableArrayRef<uint8_t>>
+ ReadMemoryRanges(llvm::ArrayRef<Range<lldb::addr_t, size_t>> ranges,
+ llvm::MutableArrayRef<uint8_t> buf) override;
+
+private:
+ llvm::Expected<StringExtractorGDBRemote>
+ SendMultiMemReadPacket(llvm::ArrayRef<Range<lldb::addr_t, size_t>> ranges);
+
+ llvm::Expected<llvm::SmallVector<llvm::MutableArrayRef<uint8_t>>>
+ ParseMultiMemReadPacket(llvm::StringRef response_str,
+ llvm::MutableArrayRef<uint8_t> buffer,
+ unsigned expected_num_ranges);
+
+public:
Status
WriteObjectFile(std::vector<ObjectFile::LoadableData> entries) override;