git: fd29833d9a7d - gdb(4): handle single register read packets

Mitchell Horne mhorne at FreeBSD.org
Wed Dec 23 18:36:24 UTC 2020


The branch main has been updated by mhorne:

URL: https://cgit.FreeBSD.org/src/commit/?id=fd29833d9a7d8355ce21743ed8c706b72ba03363

commit fd29833d9a7d8355ce21743ed8c706b72ba03363
Author:     Mitchell Horne <mhorne at FreeBSD.org>
AuthorDate: 2020-12-23 18:36:08 +0000
Commit:     Mitchell Horne <mhorne at FreeBSD.org>
CommitDate: 2020-12-23 18:36:08 +0000

    gdb(4): handle single register read packets
    
    We support bulk reads of the register set, but not reading specific
    registers via the 'p' packet. This is useful at least for the 'call'
    command in gdb.
    
    Reviewed by:    cem
    MFC after:      1 week
    Sponsored by:   NetApp, Inc.
    Sponsored by:   Klara, Inc.
    NetApp PR:      44
    Differential Revision:  https://reviews.freebsd.org/D27644
---
 sys/gdb/gdb_main.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/sys/gdb/gdb_main.c b/sys/gdb/gdb_main.c
index 70ffe0719c45..588a97c56a40 100644
--- a/sys/gdb/gdb_main.c
+++ b/sys/gdb/gdb_main.c
@@ -755,6 +755,17 @@ gdb_trap(int type, int code)
 				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;


More information about the dev-commits-src-all mailing list