Page MenuHomeFreeBSD

D43664.diff
No OneTemporary

D43664.diff

diff --git a/usr.sbin/bhyve/gdb.c b/usr.sbin/bhyve/gdb.c
--- a/usr.sbin/bhyve/gdb.c
+++ b/usr.sbin/bhyve/gdb.c
@@ -1035,6 +1035,29 @@
finish_packet();
}
+static void
+gdb_read_one_reg(const uint8_t *data, size_t len)
+{
+ uint64_t regval;
+ uintmax_t reg;
+
+ reg = parse_integer(data, len);
+ if (reg >= nitems(gdb_regset)) {
+ send_error(EINVAL);
+ return;
+ }
+
+ if (vm_get_register(vcpus[cur_vcpu], gdb_regset[reg].id, &regval) ==
+ -1) {
+ send_error(errno);
+ return;
+ }
+
+ start_packet();
+ append_unsigned_native(regval, gdb_regset[reg].size);
+ finish_packet();
+}
+
static void
gdb_read_mem(const uint8_t *data, size_t len)
{
@@ -1597,10 +1620,12 @@
/* TODO: Resume any stopped CPUs. */
break;
- case 'g': {
+ case 'g':
gdb_read_regs();
break;
- }
+ case 'p':
+ gdb_read_one_reg(data + 1, len - 1);
+ break;
case 'H': {
int tid;
@@ -1672,7 +1697,6 @@
case 'v':
/* Handle 'vCont' */
/* 'vCtrlC' */
- case 'p': /* TODO */
case 'P': /* TODO */
case 'Q': /* TODO */
case 't': /* TODO */

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 13, 4:51 AM (14 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23658125
Default Alt Text
D43664.diff (1 KB)

Event Timeline