From 8d8864e1626664bbcb0a9b1c626e63bb1983f0e3 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Mon, 13 Dec 2010 23:33:29 +0000 Subject: [PATCH] Add WriteMemory hooks to TeamMemory / DebuggerInterface to go with ReadMemory. Will be used in the (eventual) memory inspection tool. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39844 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../debugger/debugger_interface/DebuggerInterface.cpp | 11 +++++++++++ .../debugger/debugger_interface/DebuggerInterface.h | 2 ++ src/apps/debugger/model/TeamMemory.h | 2 ++ 3 files changed, 15 insertions(+) diff --git a/src/apps/debugger/debugger_interface/DebuggerInterface.cpp b/src/apps/debugger/debugger_interface/DebuggerInterface.cpp index 12ac495e9c..ddcd4f825b 100644 --- a/src/apps/debugger/debugger_interface/DebuggerInterface.cpp +++ b/src/apps/debugger/debugger_interface/DebuggerInterface.cpp @@ -575,6 +575,17 @@ DebuggerInterface::ReadMemory(target_addr_t address, void* buffer, size_t size) } +ssize_t +DebuggerInterface::WriteMemory(target_addr_t address, void* buffer, + size_t size) +{ + DebugContextGetter contextGetter(fDebugContextPool); + + return debug_write_memory(contextGetter.Context(), + (const void*)(addr_t)address, buffer, size); +} + + status_t DebuggerInterface::_CreateDebugEvent(int32 messageCode, const debug_debugger_message_data& message, bool& _ignore, diff --git a/src/apps/debugger/debugger_interface/DebuggerInterface.h b/src/apps/debugger/debugger_interface/DebuggerInterface.h index 8a2beadf21..165f76fe06 100644 --- a/src/apps/debugger/debugger_interface/DebuggerInterface.h +++ b/src/apps/debugger/debugger_interface/DebuggerInterface.h @@ -60,6 +60,8 @@ public: // TeamMemory virtual ssize_t ReadMemory(target_addr_t address, void* buffer, size_t size); + virtual ssize_t WriteMemory(target_addr_t address, + void* buffer, size_t size); private: struct DebugContext; diff --git a/src/apps/debugger/model/TeamMemory.h b/src/apps/debugger/model/TeamMemory.h index a945a54577..e1a391683a 100644 --- a/src/apps/debugger/model/TeamMemory.h +++ b/src/apps/debugger/model/TeamMemory.h @@ -21,6 +21,8 @@ public: size_t size) = 0; virtual status_t ReadMemoryString(target_addr_t address, size_t maxLength, BString& _string); + virtual ssize_t WriteMemory(target_addr_t address, + void* buffer, size_t size) = 0; };