aboutsummaryrefslogtreecommitdiff
path: root/riscv/gdbserver.h
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2016-03-09 10:31:51 -0800
committerTim Newsome <tim@sifive.com>2016-05-23 12:12:09 -0700
commit38b8c095df4555b618bd269e3a53817c91dc893d (patch)
tree47331ffd7595637c060e9dbd1a7f690fe2cbe640 /riscv/gdbserver.h
parent64f57718a840888fd2ba944316576c5a35f7a7a8 (diff)
downloadspike-38b8c095df4555b618bd269e3a53817c91dc893d.zip
spike-38b8c095df4555b618bd269e3a53817c91dc893d.tar.gz
spike-38b8c095df4555b618bd269e3a53817c91dc893d.tar.bz2
Implement binary memory write.
Also set the simulation running again when gdb disconnects.
Diffstat (limited to 'riscv/gdbserver.h')
-rw-r--r--riscv/gdbserver.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/riscv/gdbserver.h b/riscv/gdbserver.h
index 8add2ad..4b34aef 100644
--- a/riscv/gdbserver.h
+++ b/riscv/gdbserver.h
@@ -56,10 +56,13 @@ public:
void handle_interrupt();
void handle_halt_reason(const std::vector<uint8_t> &packet);
- void handle_read_general_registers(const std::vector<uint8_t> &packet);
- void handle_read_memory(const std::vector<uint8_t> &packet);
- void handle_read_register(const std::vector<uint8_t> &packet);
+ void handle_general_registers_read(const std::vector<uint8_t> &packet);
+ void handle_memory_read(const std::vector<uint8_t> &packet);
+ void handle_memory_binary_write(const std::vector<uint8_t> &packet);
+ void handle_register_read(const std::vector<uint8_t> &packet);
void handle_continue(const std::vector<uint8_t> &packet);
+ void handle_kill(const std::vector<uint8_t> &packet);
+ void handle_extended(const std::vector<uint8_t> &packet);
private:
sim_t *sim;
@@ -69,6 +72,7 @@ private:
circular_buffer_t<uint8_t> send_buf;
bool expect_ack;
+ bool extended_mode;
// Read pending data from the client.
void read();