summaryrefslogtreecommitdiff
path: root/gdbremote_parser.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'gdbremote_parser.hpp')
-rw-r--r--gdbremote_parser.hpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/gdbremote_parser.hpp b/gdbremote_parser.hpp
index d35d78e..856206a 100644
--- a/gdbremote_parser.hpp
+++ b/gdbremote_parser.hpp
@@ -61,6 +61,9 @@ enum class PacketType: int {
kContinue,
kContinueAskSupported,
kReadGeneralRegisters,
+ kWriteGeneralRegisters,
+ kReadRegister,
+ kWriteRegister,
kReadMemory,
kWriteMemory,
kStep,
@@ -97,7 +100,7 @@ struct PacketDataWriteMemory: public PacketData {
};
struct PacketDataRcmd: public PacketData {
- PacketDataRcmd(const std::string&& a_data): data(std::move(a_data)) {}
+ PacketDataRcmd(std::string&& a_data): data(std::move(a_data)) {}
std::string data{};
virtual ~PacketDataRcmd() {}
};
@@ -120,6 +123,25 @@ struct PacketDataBreakpoint: public PacketData {
virtual ~PacketDataBreakpoint() {}
};
+struct PacketDataWriteGeneralRegisters: public PacketData {
+ PacketDataWriteGeneralRegisters(std::vector<uint32_t>&& regs): registers(std::move(regs)) {}
+ std::vector<uint32_t> registers{};
+ virtual ~PacketDataWriteGeneralRegisters() {}
+};
+
+struct PacketDataReadRegister: public PacketData {
+ PacketDataReadRegister(uint32_t a_reg_id): reg_id(a_reg_id) {}
+ uint32_t reg_id{};
+ virtual ~PacketDataReadRegister() {}
+};
+
+struct PacketDataWriteRegister: public PacketData {
+ PacketDataWriteRegister(uint32_t a_reg_id, uint32_t a_value)
+ : reg_id(a_reg_id), value(a_value) {}
+ uint32_t reg_id{}, value{};
+ virtual ~PacketDataWriteRegister() {}
+};
+
struct Packet {
const PacketType type{};
const std::unique_ptr<const PacketData> data{nullptr};
@@ -174,6 +196,12 @@ struct Packet {
return "vCont?";
case PacketType::kReadGeneralRegisters:
return "g";
+ case PacketType::kWriteGeneralRegisters:
+ return "G";
+ case PacketType::kReadRegister:
+ return "p";
+ case PacketType::kWriteRegister:
+ return "P";
case PacketType::kReadMemory:
return "m";
case PacketType::kWriteMemory: