From nobody Wed Feb 7 13:53:09 2024 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4TVM5K2xzLz59QYc; Wed, 7 Feb 2024 13:53:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TVM5K28Znz4623; Wed, 7 Feb 2024 13:53:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1707313989; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EhgN6cGeEM/UEtdefakEietHfD8HZyFtny+mLoaLP2w=; b=S4172cTlB3dPqQSSn5CvVABKhEN1pk/hHGpN/3zu+2bs/EhReQOVBiQ39RbZ5YFpMDI0u8 IWNIytnzcDraKbu38I5rdfxdRgg8SKponWDi7ZCQMOE6Sd+ifknL/fKVi4TJaFydUYFGJR 9BAeHjEmxMR+THQ/eRVu4vh5nTI861+Gt4+XnZYjTLudQ3WFsGo4MNcVRtE4okKVMl6oRd kfZ00/P0Ndoh3TOmGtskv74XqZrF1bXhZZaj4Sdd6n69W1ucuDrVPQuWBd9qy/6eclE8R8 EU3JD6EVy0JNBqJOlfJQwfeHPXM5haw2hffwFRXa6Qw1H5QxQu/LfrfEK+gsRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1707313989; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EhgN6cGeEM/UEtdefakEietHfD8HZyFtny+mLoaLP2w=; b=tO/nPm+iNwjRi1k7ragd6CKxcq3Xp8dY3ZQYDVUGj4hlgAHKGIHjBX/41+brbz3Q6oneLS iK4BKtl75BRdY7W2/5yZqgNTEgC8tL7sRnV5BG4xxuKHl0prvv+9q49BCmP1J5h94wVaV7 tHJhbwIxCTC7xbuXf5biVTuPMaEuPsb3LpufwUXa0QgP/lInghaXwyOo9rZ/jlUGtmyjhx MXswdpt66+FRNejNV72+W+gczjgn/piSA2s5SJ+6Pdfd300FV9UoyLl5QNV0bvkSrqIg8/ fweHgMWbs6vvXfnAwp9LXPhlz1zZrx34bDEEd+lAUEU8jpXS6sTt07QyRKbjbA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1707313989; a=rsa-sha256; cv=none; b=SeDDzWg6Z1mh1brlmueGD6HWh7bG8kLKcOMuUJo0ivJd5mKKgU5D5NsHgG+pcgycpRGA6w /g7qUs7XLHERfkAJGbIRaYlEqj1K3NL2tmxwGyL8EJrqkt/OMmln9hg0y9i373d5p/4Gxa 6gYH/xvio1z7apOtSIzoJPMP5weZFGbuP+upyhpAdk3MBLmyNmUpDX9PBfNZgR9ThKCvfk cnuazuEHdSErOXWWt8oxIHu9CxYOHqcScPJhlplnHeVrDwy/0vtx+7g6KLUO3jJe80/3pR cOYP4ZaBj1ZpTl1aPu4Xc4oMbyHsAZ7vq/mLEn5Mk8qH8We14h1aqEjTZu9Afg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4TVM5K1BySz18LM; Wed, 7 Feb 2024 13:53:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 417Dr9U1034535; Wed, 7 Feb 2024 13:53:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 417Dr9bh034532; Wed, 7 Feb 2024 13:53:09 GMT (envelope-from git) Date: Wed, 7 Feb 2024 13:53:09 GMT Message-Id: <202402071353.417Dr9bh034532@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: e6516294f4c7 - main - bhyve: Add support for the 'p' query List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e6516294f4c7afa9da40a39caab86a5cd2aeb35a Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e6516294f4c7afa9da40a39caab86a5cd2aeb35a commit e6516294f4c7afa9da40a39caab86a5cd2aeb35a Author: Mark Johnston AuthorDate: 2024-02-07 13:46:59 +0000 Commit: Mark Johnston CommitDate: 2024-02-07 13:46:59 +0000 bhyve: Add support for the 'p' query This lets gdb query individual registers. It's easy to implement and is used by gdb when attaching to a CHERI target, so let's support it. Sponsored by: Innovate UK Reviewed by: corvink, jhb MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D43664 --- usr.sbin/bhyve/gdb.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/usr.sbin/bhyve/gdb.c b/usr.sbin/bhyve/gdb.c index 4f427b1a0863..84e725f9085e 100644 --- a/usr.sbin/bhyve/gdb.c +++ b/usr.sbin/bhyve/gdb.c @@ -1035,6 +1035,29 @@ gdb_read_regs(void) 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, ®val) == + -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 @@ handle_command(const uint8_t *data, size_t len) /* 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 @@ handle_command(const uint8_t *data, size_t len) case 'v': /* Handle 'vCont' */ /* 'vCtrlC' */ - case 'p': /* TODO */ case 'P': /* TODO */ case 'Q': /* TODO */ case 't': /* TODO */