From 9037b017d6519fed435eea20c3553d40d871d379 Mon Sep 17 00:00:00 2001 From: Oxore Date: Sat, 3 Sep 2022 14:54:34 +0300 Subject: Impl writing memory via GDB --- gdbremote_parser.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'gdbremote_parser.hpp') diff --git a/gdbremote_parser.hpp b/gdbremote_parser.hpp index 75c9bb7..e060daa 100644 --- a/gdbremote_parser.hpp +++ b/gdbremote_parser.hpp @@ -60,6 +60,7 @@ enum class PacketType: int { kContinueAskSupported, kReadGeneralRegisters, kReadMemory, + kWriteMemory, kStep, kSetBreakpoint, kDeleteBreakpoint, @@ -85,6 +86,14 @@ struct PacketDataReadMemory: public PacketData { virtual ~PacketDataReadMemory() {} }; +struct PacketDataWriteMemory: public PacketData { + PacketDataWriteMemory(uint32_t a_offset, uint32_t a_length, std::vector&& a_data) + : offset(a_offset), length(a_length), data(std::move(a_data)) {} + uint32_t offset{}, length{}; + std::vector data{}; + virtual ~PacketDataWriteMemory() {} +}; + struct Packet { const PacketType type{}; const std::unique_ptr data{nullptr}; @@ -137,6 +146,8 @@ struct Packet { return "g"; case PacketType::kReadMemory: return "m"; + case PacketType::kWriteMemory: + return "M"; case PacketType::kStep: return "s"; case PacketType::kSetBreakpoint: -- cgit v1.2.3