Read actual register values

This commit is contained in:
2025-01-01 21:48:33 -05:00
parent 8707a5196b
commit 82c3104ab9
4 changed files with 69 additions and 14 deletions
+13 -2
View File
@@ -227,12 +227,23 @@ impl GdbConnection {
self.client.send_command(EmulatorCommand::Resume);
// Don't send a response until we hit a breakpoint or get interrupted
} else if req.match_str("p") {
let Some(register) = req.match_hex::<u32>() else {
let mut read_register = || {
let register_index = req.match_hex::<usize>()?;
let register = REGISTERS.get(register_index)?.to_vb_register();
let (tx, rx) = ::oneshot::channel();
self.client.send_command(EmulatorCommand::ReadRegister(
self.sim_id,
register,
tx,
));
rx.recv().ok()
};
let Some(value) = read_register() else {
let res = self.response();
self.send(res).await?;
continue;
};
let res = self.response().write_hex(register);
let res = self.response().write_hex(value);
self.send(res).await?;
} else if req.match_str("m") {
let mut read_params = || {