Page MenuHomeFreeBSD

D27644.id80787.diff
No OneTemporary

D27644.id80787.diff

Index: sys/gdb/gdb_main.c
===================================================================
--- sys/gdb/gdb_main.c
+++ sys/gdb/gdb_main.c
@@ -700,9 +700,20 @@
gdb_tx_end();
break;
}
- case 'G': /* Write registers. */
- gdb_tx_err(0);
+ case 'G': { /* Write registers. */
+ char *val;
+ size_t r;
+ for (r = 0; r < GDB_NREGS; r++) {
+ val = gdb_rxp;
+ if (!gdb_rx_mem(val, gdb_cpu_regsz(r))) {
+ gdb_tx_err(EINVAL);
+ break;
+ }
+ gdb_cpu_setreg(r, val);
+ }
+ gdb_tx_ok();
break;
+ }
case 'H': { /* Set thread. */
intmax_t tid;
struct thread *thr;
@@ -755,6 +766,17 @@
gdb_tx_ok();
break;
}
+ case 'p': { /* Read register. */
+ uintmax_t reg;
+ if (gdb_rx_varhex(&reg)) {
+ gdb_tx_err(EINVAL);
+ break;
+ }
+ gdb_tx_begin(0);
+ gdb_tx_reg(reg);
+ gdb_tx_end();
+ break;
+ }
case 'P': { /* Write register. */
char *val;
uintmax_t reg;

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 9, 1:46 AM (21 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28523086
Default Alt Text
D27644.id80787.diff (946 B)

Event Timeline