From nobody Thu Apr 30 05:20:51 2026 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 4g5jF51KHvz6ZVpR for ; Thu, 30 Apr 2026 05:20:57 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g5jF45WtXz3blK for ; Thu, 30 Apr 2026 05:20:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777526456; 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=lmoV/si0t7IbxCCvsQdKajMmr/wYF89y352NbeiWbEI=; b=WGybbOGw5GDHDtsgETg3cEDzG2K55jFFcwwNA/lBhkYP54A5Wy7i+lq4RoSaFuCedZrQKk YzbaaRhlu+X0H/1gz4wcAXLeQEcKEUahpLf+YKlerh5l7Q6DAExoXrI5CyFYuIZkngEfNg I2GUUz/5HA5rCLS/9l0QaFRXhchc0V7R654qRJ/0+HbVPgr1tFRr4Wdd/JygP5b02CBB+C k46/TnEeDKfsB89XuAuk5h/r5LlXF9qYGiQAmq/d0iXzJEQ/37rKTemj+eHE4K/4Ge1iUG G+PKhzazX/N4wb2V1CVDGbFdsdKudqWKjdcTyivpR5VQjwsdIqSkXcGuwpf1cQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777526456; a=rsa-sha256; cv=none; b=uILgOPm0GaYgi3ryzUsKu/RC5rcSuqdpX3o94fte9qTzkuffHu33NaAiF/B8zkI7vF/M8m av42un/5ow/efUoR1K+K+uNKhN2nnIqiXUJSvF+kbqiOeHX42dzCr7w1EryUOdzlRBpzId 7bmZl+PPou3UrrqxgopGi9p70om21nPRp8Ua3Z3G58KmVcD8hEpg/TvWJqkp5ntc9jcuBe 97MGhJk683iKBVsf3e7suHAyBW3TLrYQQI3FpBG9Eg5kS668294K8f1q30bnRA5u2RkD2f kBJtjVepSMi4Uuf2sgv33k/zlMkdxO9kIxTUHdNb1xj/5BYYdGhMr9V57lHUKg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777526456; 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=lmoV/si0t7IbxCCvsQdKajMmr/wYF89y352NbeiWbEI=; b=ISmjmLDKb31yfAwcn8hDDEtlQUj4cBhzhHXJ8wJj4sRh6Rv++cHpm9Zu2BPCzvtlPRGiYa YxvRiWrcr5maXCJVO9V2SqJSDcXp9TGEJcOUy92ml4PBX7LBHsT5Lw45JAJDG8UOFM0GWi 1fEyKvWrXMbKt2hPofmxRJk18kGP3hlO6LMhfr3BnMxb3wMZ+dM4gJ7G+mvUe7k2z2Ieq1 zmMdu4EdJtnatrRnrwd7yUfKz6svCKjhaP1NO5iWwI0zK3Vc6zR4oV8ecnbzXkNS6LF0DS GXVp7HTsr0gNjTv/XTr53vPB1aa+1DT9sQpgNfNJxT1ADb6QfS/O+TiapBVvLQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g5jF44qkLz1CbM for ; Thu, 30 Apr 2026 05:20:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22073 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 30 Apr 2026 05:20:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Stephen J. Kiernan Subject: git: b683fd0b3206 - main - preload: add "show preload" DDB command 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: stevek X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b683fd0b3206b35214f7f87805246e5c74552942 Auto-Submitted: auto-generated Date: Thu, 30 Apr 2026 05:20:51 +0000 Message-Id: <69f2e6b3.22073.38fe94f3@gitrepo.freebsd.org> The branch main has been updated by stevek: URL: https://cgit.FreeBSD.org/src/commit/?id=b683fd0b3206b35214f7f87805246e5c74552942 commit b683fd0b3206b35214f7f87805246e5c74552942 Author: Stephen J. Kiernan AuthorDate: 2026-04-30 05:19:09 +0000 Commit: Stephen J. Kiernan CommitDate: 2026-04-30 05:20:12 +0000 preload: add "show preload" DDB command This is the DDB equivalent of the debug.dump_modinfo sysctl which outputs pretty-printed bootloader metadata. Move sbuf_db_printf_drain to subr_prf.c and expose it for general use. Reviewed By: jmg Differential Revision: https://reviews.freebsd.org/D53763 --- sys/kern/subr_module.c | 20 ++++++++++++++++++++ sys/kern/subr_prf.c | 9 +++++++++ sys/kern/subr_witness.c | 6 ------ sys/sys/sbuf.h | 3 +++ 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/sys/kern/subr_module.c b/sys/kern/subr_module.c index 92f22206f8cf..b2d723fef038 100644 --- a/sys/kern/subr_module.c +++ b/sys/kern/subr_module.c @@ -28,6 +28,9 @@ * SUCH DAMAGE. */ +#include +#include "opt_ddb.h" + #include #include #include @@ -39,6 +42,10 @@ #include #include +#ifdef DDB +#include +#endif + /* * Preloaded module support */ @@ -607,3 +614,16 @@ SYSCTL_PROC(_debug, OID_AUTO, dump_modinfo, CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, sysctl_preload_dump, "A", "pretty-print the bootloader metadata"); + +#ifdef DDB +DB_SHOW_COMMAND_FLAGS(preload, db_show_preload, DB_CMD_MEMSAFE) +{ + struct sbuf sb; + char buffer[128]; + + sbuf_new(&sb, buffer, sizeof(buffer), SBUF_FIXEDLEN); + sbuf_set_drain(&sb, sbuf_db_printf_drain, NULL); + preload_dump_internal(&sb); + sbuf_finish(&sb); +} +#endif diff --git a/sys/kern/subr_prf.c b/sys/kern/subr_prf.c index bbf81b7a4ffe..35b5ee8ccdc8 100644 --- a/sys/kern/subr_prf.c +++ b/sys/kern/subr_prf.c @@ -1358,3 +1358,12 @@ sbuf_printf_drain(void *arg, const char *data, int len) return (r); } + +#if defined(_KERNEL) && defined(DDB) +int +sbuf_db_printf_drain(void *arg __unused, const char *data, int len) +{ + + return (db_printf("%.*s", len, data)); +} +#endif diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c index 85dc0c321797..3c192b2b0dce 100644 --- a/sys/kern/subr_witness.c +++ b/sys/kern/subr_witness.c @@ -3121,12 +3121,6 @@ sysctl_debug_witness_badstacks(SYSCTL_HANDLER_ARGS) } #ifdef DDB -static int -sbuf_db_printf_drain(void *arg __unused, const char *data, int len) -{ - return (db_printf("%.*s", len, data)); -} - DB_SHOW_COMMAND_FLAGS(badstacks, db_witness_badstacks, DB_CMD_MEMSAFE) { struct sbuf sb; diff --git a/sys/sys/sbuf.h b/sys/sys/sbuf.h index 60dcda53a461..e9959d7b2a13 100644 --- a/sys/sys/sbuf.h +++ b/sys/sys/sbuf.h @@ -114,6 +114,9 @@ struct uio; struct sbuf *sbuf_uionew(struct sbuf *, struct uio *, int *); int sbuf_bcopyin(struct sbuf *, const void *, size_t); int sbuf_copyin(struct sbuf *, const void *, size_t); +#ifdef DDB +int sbuf_db_printf_drain(void *arg, const char *data, int len); +#endif #endif __END_DECLS