diff options
author | Oxore <oxore@protonmail.com> | 2022-09-03 14:54:34 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2022-09-03 15:12:58 +0300 |
commit | 9037b017d6519fed435eea20c3553d40d871d379 (patch) | |
tree | edd55ac4880c980f772f7a466f00edf5837fd38b /gdbremote_parser.hpp | |
parent | f1573848a8ced69f45192b07bab9785e900d34a0 (diff) |
Impl writing memory via GDB
Diffstat (limited to 'gdbremote_parser.hpp')
-rw-r--r-- | gdbremote_parser.hpp | 11 |
1 files changed, 11 insertions, 0 deletions
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<uint8_t>&& a_data) + : offset(a_offset), length(a_length), data(std::move(a_data)) {} + uint32_t offset{}, length{}; + std::vector<uint8_t> data{}; + virtual ~PacketDataWriteMemory() {} +}; + struct Packet { const PacketType type{}; const std::unique_ptr<const PacketData> 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: |