Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jul 2022 22:06:52 GMT
From:      Allan Jude <allanjude@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: c84c5e00ac28 - main - ddb: annotate some commands with DB_CMD_MEMSAFE
Message-ID:  <202207182206.26IM6qeW048141@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by allanjude:

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

commit c84c5e00ac28c8e00a56019031d1eaec74428b54
Author:     Mitchell Horne <mhorne@FreeBSD.org>
AuthorDate: 2022-07-18 21:21:38 +0000
Commit:     Allan Jude <allanjude@FreeBSD.org>
CommitDate: 2022-07-18 22:06:09 +0000

    ddb: annotate some commands with DB_CMD_MEMSAFE
    
    This is not completely exhaustive, but covers a large majority of
    commands in the tree.
    
    Reviewed by:    markj
    Sponsored by:   Juniper Networks, Inc.
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D35583
---
 sys/amd64/amd64/machdep.c | 8 ++++----
 sys/ddb/db_command.c      | 2 +-
 sys/ddb/db_watch.c        | 2 +-
 sys/dev/pci/pci.c         | 6 +++---
 sys/i386/i386/machdep.c   | 8 ++++----
 sys/kern/init_main.c      | 2 +-
 sys/kern/kern_cpuset.c    | 4 ++--
 sys/kern/kern_descrip.c   | 2 +-
 sys/kern/kern_intr.c      | 4 ++--
 sys/kern/kern_ktr.c       | 2 +-
 sys/kern/kern_linker.c    | 2 +-
 sys/kern/kern_malloc.c    | 2 +-
 sys/kern/kern_proc.c      | 2 +-
 sys/kern/kern_shutdown.c  | 2 +-
 sys/kern/kern_timeout.c   | 2 +-
 sys/kern/subr_autoconf.c  | 2 +-
 sys/kern/subr_devmap.c    | 2 +-
 sys/kern/subr_intr.c      | 2 +-
 sys/kern/subr_pcpu.c      | 6 +++---
 sys/kern/subr_physmem.c   | 2 +-
 sys/kern/subr_prf.c       | 2 +-
 sys/kern/subr_rman.c      | 4 ++--
 sys/kern/subr_turnstile.c | 2 +-
 sys/kern/subr_witness.c   | 6 +++---
 sys/kern/vfs_bio.c        | 6 +++---
 sys/kern/vfs_subr.c       | 2 +-
 sys/net/vnet.c            | 6 +++---
 sys/opencrypto/crypto.c   | 2 +-
 sys/vm/uma_core.c         | 4 ++--
 sys/vm/vm_object.c        | 4 ++--
 sys/vm/vm_page.c          | 4 ++--
 sys/vm/vm_phys.c          | 2 +-
 sys/x86/x86/local_apic.c  | 4 ++--
 33 files changed, 56 insertions(+), 56 deletions(-)

diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 368a3c56c900..8174a8e850c8 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -521,7 +521,7 @@ extern inthand_t
  * Display the index and function name of any IDT entries that don't use
  * the default 'rsvd' entry point.
  */
-DB_SHOW_COMMAND(idt, db_show_idt)
+DB_SHOW_COMMAND_FLAGS(idt, db_show_idt, DB_CMD_MEMSAFE)
 {
 	struct gate_descriptor *ip;
 	int idx;
@@ -540,7 +540,7 @@ DB_SHOW_COMMAND(idt, db_show_idt)
 }
 
 /* Show privileged registers. */
-DB_SHOW_COMMAND(sysregs, db_show_sysregs)
+DB_SHOW_COMMAND_FLAGS(sysregs, db_show_sysregs, DB_CMD_MEMSAFE)
 {
 	struct {
 		uint16_t limit;
@@ -573,7 +573,7 @@ DB_SHOW_COMMAND(sysregs, db_show_sysregs)
 	db_printf("GSBASE\t0x%016lx\n", rdmsr(MSR_GSBASE));
 }
 
-DB_SHOW_COMMAND(dbregs, db_show_dbregs)
+DB_SHOW_COMMAND_FLAGS(dbregs, db_show_dbregs, DB_CMD_MEMSAFE)
 {
 
 	db_printf("dr0\t0x%016lx\n", rdr0());
@@ -581,7 +581,7 @@ DB_SHOW_COMMAND(dbregs, db_show_dbregs)
 	db_printf("dr2\t0x%016lx\n", rdr2());
 	db_printf("dr3\t0x%016lx\n", rdr3());
 	db_printf("dr6\t0x%016lx\n", rdr6());
-	db_printf("dr7\t0x%016lx\n", rdr7());	
+	db_printf("dr7\t0x%016lx\n", rdr7());
 }
 #endif
 
diff --git a/sys/ddb/db_command.c b/sys/ddb/db_command.c
index e6de6cd716e2..06eab31dbfa8 100644
--- a/sys/ddb/db_command.c
+++ b/sys/ddb/db_command.c
@@ -511,7 +511,7 @@ db_command(struct db_command **last_cmdp, struct db_command_table *cmd_table,
  * At least one non-optional command must be implemented using
  * DB_COMMAND() so that db_cmd_set gets created.  Here is one.
  */
-DB_COMMAND(panic, db_panic)
+DB_COMMAND_FLAGS(panic, db_panic, DB_CMD_MEMSAFE)
 {
 	db_disable_pager();
 	panic("from debugger");
diff --git a/sys/ddb/db_watch.c b/sys/ddb/db_watch.c
index 3226b050a4c3..62585731e82e 100644
--- a/sys/ddb/db_watch.c
+++ b/sys/ddb/db_watch.c
@@ -216,7 +216,7 @@ db_watchpoint_cmd(db_expr_t addr, bool have_addr, db_expr_t count,
  * At least one non-optional show-command must be implemented using
  * DB_SHOW_COMMAND() so that db_show_cmd_set gets created.  Here is one.
  */
-DB_SHOW_COMMAND(watches, db_listwatch_cmd)
+DB_SHOW_COMMAND_FLAGS(watches, db_listwatch_cmd, DB_CMD_MEMSAFE)
 {
 	db_list_watchpoints();
 	db_md_list_watchpoints();
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 6c09212c2656..34eab9fdd2bb 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -5376,7 +5376,7 @@ pci_write_ivar(device_t dev, device_t child, int which, uintptr_t value)
  * List resources based on pci map registers, used for within ddb
  */
 
-DB_SHOW_COMMAND(pciregs, db_pci_dump)
+DB_SHOW_COMMAND_FLAGS(pciregs, db_pci_dump, DB_CMD_MEMSAFE)
 {
 	struct pci_devinfo *dinfo;
 	struct devlist *devlist_head;
@@ -6787,7 +6787,7 @@ pci_print_faulted_dev(void)
 }
 
 #ifdef DDB
-DB_SHOW_COMMAND(pcierr, pci_print_faulted_dev_db)
+DB_SHOW_COMMAND_FLAGS(pcierr, pci_print_faulted_dev_db, DB_CMD_MEMSAFE)
 {
 
 	pci_print_faulted_dev();
@@ -6816,7 +6816,7 @@ db_clear_pcie_errors(const struct pci_devinfo *dinfo)
 		pci_write_config(dev, aer + PCIR_AER_COR_STATUS, r, 4);
 }
 
-DB_COMMAND(pci_clearerr, db_pci_clearerr)
+DB_COMMAND_FLAGS(pci_clearerr, db_pci_clearerr, DB_CMD_MEMSAFE)
 {
 	struct pci_devinfo *dinfo;
 	device_t dev;
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index c096ea220146..5bec6196ba27 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -644,7 +644,7 @@ extern inthand_t
  * Display the index and function name of any IDT entries that don't use
  * the default 'rsvd' entry point.
  */
-DB_SHOW_COMMAND(idt, db_show_idt)
+DB_SHOW_COMMAND_FLAGS(idt, db_show_idt, DB_CMD_MEMSAFE)
 {
 	struct gate_descriptor *ip;
 	int idx;
@@ -677,7 +677,7 @@ DB_SHOW_COMMAND(idt, db_show_idt)
 }
 
 /* Show privileged registers. */
-DB_SHOW_COMMAND(sysregs, db_show_sysregs)
+DB_SHOW_COMMAND_FLAGS(sysregs, db_show_sysregs, DB_CMD_MEMSAFE)
 {
 	uint64_t idtr, gdtr;
 
@@ -708,7 +708,7 @@ DB_SHOW_COMMAND(sysregs, db_show_sysregs)
 		db_printf("PAT\t0x%016llx\n", rdmsr(MSR_PAT));
 }
 
-DB_SHOW_COMMAND(dbregs, db_show_dbregs)
+DB_SHOW_COMMAND_FLAGS(dbregs, db_show_dbregs, DB_CMD_MEMSAFE)
 {
 
 	db_printf("dr0\t0x%08x\n", rdr0());
@@ -716,7 +716,7 @@ DB_SHOW_COMMAND(dbregs, db_show_dbregs)
 	db_printf("dr2\t0x%08x\n", rdr2());
 	db_printf("dr3\t0x%08x\n", rdr3());
 	db_printf("dr6\t0x%08x\n", rdr6());
-	db_printf("dr7\t0x%08x\n", rdr7());	
+	db_printf("dr7\t0x%08x\n", rdr7());
 }
 
 DB_SHOW_COMMAND(frame, db_show_frame)
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index eb1323d12f61..1974c4e68ce4 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -893,7 +893,7 @@ db_show_print_syinit(struct sysinit *sip, bool ddb)
 #undef xprint
 }
 
-DB_SHOW_COMMAND(sysinit, db_show_sysinit)
+DB_SHOW_COMMAND_FLAGS(sysinit, db_show_sysinit, DB_CMD_MEMSAFE)
 {
 	struct sysinit **sipp;
 
diff --git a/sys/kern/kern_cpuset.c b/sys/kern/kern_cpuset.c
index 0670d9a046a7..ed0a666c460c 100644
--- a/sys/kern/kern_cpuset.c
+++ b/sys/kern/kern_cpuset.c
@@ -2485,7 +2485,7 @@ ddb_display_domainset(const domainset_t *set)
 	ddb_display_bitset((const struct bitset *)set, DOMAINSET_SETSIZE);
 }
 
-DB_SHOW_COMMAND(cpusets, db_show_cpusets)
+DB_SHOW_COMMAND_FLAGS(cpusets, db_show_cpusets, DB_CMD_MEMSAFE)
 {
 	struct cpuset *set;
 
@@ -2505,7 +2505,7 @@ DB_SHOW_COMMAND(cpusets, db_show_cpusets)
 	}
 }
 
-DB_SHOW_COMMAND(domainsets, db_show_domainsets)
+DB_SHOW_COMMAND_FLAGS(domainsets, db_show_domainsets, DB_CMD_MEMSAFE)
 {
 	struct domainset *set;
 
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 163864ddf752..24ab81693e4c 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -4971,7 +4971,7 @@ DB_SHOW_COMMAND(file, db_show_file)
 	db_print_file(fp, 1);
 }
 
-DB_SHOW_COMMAND(files, db_show_files)
+DB_SHOW_COMMAND_FLAGS(files, db_show_files, DB_CMD_MEMSAFE)
 {
 	struct filedesc *fdp;
 	struct file *fp;
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index 3c4f9d0eac23..ead08b530dc3 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -1599,7 +1599,7 @@ db_dump_intr_event(struct intr_event *ie, int handlers)
 /*
  * Dump data about interrupt handlers
  */
-DB_SHOW_COMMAND(intr, db_show_intr)
+DB_SHOW_COMMAND_FLAGS(intr, db_show_intr, DB_CMD_MEMSAFE)
 {
 	struct intr_event *ie;
 	int all, verbose;
@@ -1683,7 +1683,7 @@ SYSCTL_PROC(_hw, OID_AUTO, intrcnt,
 /*
  * DDB command to dump the interrupt statistics.
  */
-DB_SHOW_COMMAND(intrcnt, db_show_intrcnt)
+DB_SHOW_COMMAND_FLAGS(intrcnt, db_show_intrcnt, DB_CMD_MEMSAFE)
 {
 	u_long *i;
 	char *cp;
diff --git a/sys/kern/kern_ktr.c b/sys/kern/kern_ktr.c
index 79e4b6121054..fe25122ecb9e 100644
--- a/sys/kern/kern_ktr.c
+++ b/sys/kern/kern_ktr.c
@@ -417,7 +417,7 @@ static	struct tstate tstate;
 static	int db_ktr_verbose;
 static	int db_mach_vtrace(void);
 
-DB_SHOW_COMMAND(ktr, db_ktr_all)
+DB_SHOW_COMMAND_FLAGS(ktr, db_ktr_all, DB_CMD_MEMSAFE)
 {
 
 	tstate.cur = (ktr_idx - 1) % ktr_entries;
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index 2d3a1be54566..9756bc571dca 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -1387,7 +1387,7 @@ kern_kldstat(struct thread *td, int fileid, struct kld_file_stat *stat)
 }
 
 #ifdef DDB
-DB_COMMAND(kldstat, db_kldstat)
+DB_COMMAND_FLAGS(kldstat, db_kldstat, DB_CMD_MEMSAFE)
 {
 	linker_file_t lf;
 
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c
index eb70e4e6cd57..6bdcb48c5061 100644
--- a/sys/kern/kern_malloc.c
+++ b/sys/kern/kern_malloc.c
@@ -1482,7 +1482,7 @@ get_malloc_stats(const struct malloc_type_internal *mtip, uint64_t *allocs,
 	return (alloced - freed);
 }
 
-DB_SHOW_COMMAND(malloc, db_show_malloc)
+DB_SHOW_COMMAND_FLAGS(malloc, db_show_malloc, DB_CMD_MEMSAFE)
 {
 	const char *fmt_hdr, *fmt_entry;
 	struct malloc_type *mtp;
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 4962e83c4ad4..20e0c1fe3b45 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -997,7 +997,7 @@ db_print_pgrp_one(struct pgrp *pgrp, struct proc *p)
 	    p->p_pptr == NULL ? 0 : isjobproc(p->p_pptr, pgrp));
 }
 
-DB_SHOW_COMMAND(pgrpdump, pgrpdump)
+DB_SHOW_COMMAND_FLAGS(pgrpdump, pgrpdump, DB_CMD_MEMSAFE)
 {
 	struct pgrp *pgrp;
 	struct proc *p;
diff --git a/sys/kern/kern_shutdown.c b/sys/kern/kern_shutdown.c
index 8c2ec0e42d5d..87afc175a72d 100644
--- a/sys/kern/kern_shutdown.c
+++ b/sys/kern/kern_shutdown.c
@@ -1827,7 +1827,7 @@ dump_init_header(const struct dumperinfo *di, struct kerneldumpheader *kdh,
 }
 
 #ifdef DDB
-DB_SHOW_COMMAND(panic, db_show_panic)
+DB_SHOW_COMMAND_FLAGS(panic, db_show_panic, DB_CMD_MEMSAFE)
 {
 
 	if (panicstr == NULL)
diff --git a/sys/kern/kern_timeout.c b/sys/kern/kern_timeout.c
index 5c6c49ec93bd..0ac0eca36da4 100644
--- a/sys/kern/kern_timeout.c
+++ b/sys/kern/kern_timeout.c
@@ -1528,7 +1528,7 @@ _show_last_callout(int cpu, int direct, const char *dirstr)
 	db_printf("\ncpu %d last%s callout argument: %p\n", cpu, dirstr, arg);
 }
 
-DB_SHOW_COMMAND(callout_last, db_show_callout_last)
+DB_SHOW_COMMAND_FLAGS(callout_last, db_show_callout_last, DB_CMD_MEMSAFE)
 {
 	int cpu, last;
 
diff --git a/sys/kern/subr_autoconf.c b/sys/kern/subr_autoconf.c
index f87d99bbedcf..5c278afb61c2 100644
--- a/sys/kern/subr_autoconf.c
+++ b/sys/kern/subr_autoconf.c
@@ -298,7 +298,7 @@ config_intrhook_drain(struct intr_config_hook *hook)
 #ifdef DDB
 #include <ddb/ddb.h>
 
-DB_SHOW_COMMAND(conifhk, db_show_conifhk)
+DB_SHOW_COMMAND_FLAGS(conifhk, db_show_conifhk, DB_CMD_MEMSAFE)
 {
 	struct intr_config_hook *hook_entry;
 	char namebuf[64];
diff --git a/sys/kern/subr_devmap.c b/sys/kern/subr_devmap.c
index 1c9b192cc4c8..f29e6df472b5 100644
--- a/sys/kern/subr_devmap.c
+++ b/sys/kern/subr_devmap.c
@@ -344,7 +344,7 @@ pmap_unmapdev(vm_offset_t va, vm_size_t size)
 #ifdef DDB
 #include <ddb/ddb.h>
 
-DB_SHOW_COMMAND(devmap, db_show_devmap)
+DB_SHOW_COMMAND_FLAGS(devmap, db_show_devmap, DB_CMD_MEMSAFE)
 {
 	devmap_dump_table(db_printf);
 }
diff --git a/sys/kern/subr_intr.c b/sys/kern/subr_intr.c
index 16306c78cbd9..17f4a24ab860 100644
--- a/sys/kern/subr_intr.c
+++ b/sys/kern/subr_intr.c
@@ -1546,7 +1546,7 @@ intr_pic_init_secondary(void)
 #endif
 
 #ifdef DDB
-DB_SHOW_COMMAND(irqs, db_show_irqs)
+DB_SHOW_COMMAND_FLAGS(irqs, db_show_irqs, DB_CMD_MEMSAFE)
 {
 	u_int i, irqsum;
 	u_long num;
diff --git a/sys/kern/subr_pcpu.c b/sys/kern/subr_pcpu.c
index aaa9b62bb936..c4c220d66c97 100644
--- a/sys/kern/subr_pcpu.c
+++ b/sys/kern/subr_pcpu.c
@@ -338,7 +338,7 @@ sysctl_dpcpu_int(SYSCTL_HANDLER_ARGS)
 }
 
 #ifdef DDB
-DB_SHOW_COMMAND(dpcpu_off, db_show_dpcpu_off)
+DB_SHOW_COMMAND_FLAGS(dpcpu_off, db_show_dpcpu_off, DB_CMD_MEMSAFE)
 {
 	int id;
 
@@ -390,7 +390,7 @@ show_pcpu(struct pcpu *pc)
 #endif
 }
 
-DB_SHOW_COMMAND(pcpu, db_show_pcpu)
+DB_SHOW_COMMAND_FLAGS(pcpu, db_show_pcpu, DB_CMD_MEMSAFE)
 {
 	struct pcpu *pc;
 	int id;
@@ -421,5 +421,5 @@ DB_SHOW_ALL_COMMAND(pcpu, db_show_cpu_all)
 		}
 	}
 }
-DB_SHOW_ALIAS(allpcpu, db_show_cpu_all);
+DB_SHOW_ALIAS_FLAGS(allpcpu, db_show_cpu_all, DB_CMD_MEMSAFE);
 #endif
diff --git a/sys/kern/subr_physmem.c b/sys/kern/subr_physmem.c
index 2c7837019ea2..5caff7da4f50 100644
--- a/sys/kern/subr_physmem.c
+++ b/sys/kern/subr_physmem.c
@@ -515,7 +515,7 @@ physmem_init_kernel_globals(void)
 #ifdef DDB
 #include <ddb/ddb.h>
 
-DB_SHOW_COMMAND(physmem, db_show_physmem)
+DB_SHOW_COMMAND_FLAGS(physmem, db_show_physmem, DB_CMD_MEMSAFE)
 {
 
 	physmem_dump_tables(db_printf);
diff --git a/sys/kern/subr_prf.c b/sys/kern/subr_prf.c
index 62a0bd0a3699..0506c21b5ad8 100644
--- a/sys/kern/subr_prf.c
+++ b/sys/kern/subr_prf.c
@@ -1127,7 +1127,7 @@ SYSCTL_PROC(_kern, OID_AUTO, msgbuf_clear,
 
 #ifdef DDB
 
-DB_SHOW_COMMAND(msgbuf, db_show_msgbuf)
+DB_SHOW_COMMAND_FLAGS(msgbuf, db_show_msgbuf, DB_CMD_MEMSAFE)
 {
 	int i, j;
 
diff --git a/sys/kern/subr_rman.c b/sys/kern/subr_rman.c
index 1bbaff8264ef..32603d261279 100644
--- a/sys/kern/subr_rman.c
+++ b/sys/kern/subr_rman.c
@@ -1116,7 +1116,7 @@ DB_SHOW_COMMAND(rman, db_show_rman)
 	}
 }
 
-DB_SHOW_COMMAND(rmans, db_show_rmans)
+DB_SHOW_COMMAND_FLAGS(rmans, db_show_rmans, DB_CMD_MEMSAFE)
 {
 	struct rman *rm;
 
@@ -1134,5 +1134,5 @@ DB_SHOW_ALL_COMMAND(rman, db_show_all_rman)
 		dump_rman(rm);
 	}
 }
-DB_SHOW_ALIAS(allrman, db_show_all_rman);
+DB_SHOW_ALIAS_FLAGS(allrman, db_show_all_rman, DB_CMD_MEMSAFE);
 #endif
diff --git a/sys/kern/subr_turnstile.c b/sys/kern/subr_turnstile.c
index d966a796c867..d976d0994668 100644
--- a/sys/kern/subr_turnstile.c
+++ b/sys/kern/subr_turnstile.c
@@ -1263,7 +1263,7 @@ DB_SHOW_ALL_COMMAND(chains, db_show_allchains)
 		}
 	}
 }
-DB_SHOW_ALIAS(allchains, db_show_allchains)
+DB_SHOW_ALIAS_FLAGS(allchains, db_show_allchains, DB_CMD_MEMSAFE)
 
 static void	print_waiters(struct turnstile *ts, int indent);
 
diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c
index 57f63d362a4f..33b1b506f85f 100644
--- a/sys/kern/subr_witness.c
+++ b/sys/kern/subr_witness.c
@@ -2604,9 +2604,9 @@ DB_SHOW_ALL_COMMAND(locks, db_witness_list_all)
 		}
 	}
 }
-DB_SHOW_ALIAS(alllocks, db_witness_list_all)
+DB_SHOW_ALIAS_FLAGS(alllocks, db_witness_list_all, DB_CMD_MEMSAFE)
 
-DB_SHOW_COMMAND(witness, db_witness_display)
+DB_SHOW_COMMAND_FLAGS(witness, db_witness_display, DB_CMD_MEMSAFE)
 {
 
 	witness_ddb_display(db_printf);
@@ -2782,7 +2782,7 @@ sbuf_db_printf_drain(void *arg __unused, const char *data, int len)
 	return (db_printf("%.*s", len, data));
 }
 
-DB_SHOW_COMMAND(badstacks, db_witness_badstacks)
+DB_SHOW_COMMAND_FLAGS(badstacks, db_witness_badstacks, DB_CMD_MEMSAFE)
 {
 	struct sbuf sb;
 	char buffer[128];
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index 7724e66f7bad..8da40824e217 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -5484,7 +5484,7 @@ DB_SHOW_COMMAND(buffer, db_show_buffer)
 	db_printf(" ");
 }
 
-DB_SHOW_COMMAND(bufqueues, bufqueues)
+DB_SHOW_COMMAND_FLAGS(bufqueues, bufqueues, DB_CMD_MEMSAFE)
 {
 	struct bufdomain *bd;
 	struct buf *bp;
@@ -5550,7 +5550,7 @@ DB_SHOW_COMMAND(bufqueues, bufqueues)
 	}
 }
 
-DB_SHOW_COMMAND(lockedbufs, lockedbufs)
+DB_SHOW_COMMAND_FLAGS(lockedbufs, lockedbufs, DB_CMD_MEMSAFE)
 {
 	struct buf *bp;
 	int i;
@@ -5588,7 +5588,7 @@ DB_SHOW_COMMAND(vnodebufs, db_show_vnodebufs)
 	}
 }
 
-DB_COMMAND(countfreebufs, db_coundfreebufs)
+DB_COMMAND_FLAGS(countfreebufs, db_coundfreebufs, DB_CMD_MEMSAFE)
 {
 	struct buf *bp;
 	int i, used = 0, nfree = 0;
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index a6344e139502..739d22089f97 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -4271,7 +4271,7 @@ vn_printf(struct vnode *vp, const char *fmt, ...)
  * List all of the locked vnodes in the system.
  * Called when debugging the kernel.
  */
-DB_SHOW_COMMAND(lockedvnods, lockedvnodes)
+DB_SHOW_COMMAND_FLAGS(lockedvnods, lockedvnodes, DB_CMD_MEMSAFE)
 {
 	struct mount *mp;
 	struct vnode *vp;
diff --git a/sys/net/vnet.c b/sys/net/vnet.c
index 2480fc8dd86c..4f242b07f169 100644
--- a/sys/net/vnet.c
+++ b/sys/net/vnet.c
@@ -769,7 +769,7 @@ db_show_vnet_print_vs(struct vnet_sysinit *vs, int ddb)
 #undef xprint
 }
 
-DB_SHOW_COMMAND(vnet_sysinit, db_show_vnet_sysinit)
+DB_SHOW_COMMAND_FLAGS(vnet_sysinit, db_show_vnet_sysinit, DB_CMD_MEMSAFE)
 {
 	struct vnet_sysinit *vs;
 
@@ -783,7 +783,7 @@ DB_SHOW_COMMAND(vnet_sysinit, db_show_vnet_sysinit)
 	}
 }
 
-DB_SHOW_COMMAND(vnet_sysuninit, db_show_vnet_sysuninit)
+DB_SHOW_COMMAND_FLAGS(vnet_sysuninit, db_show_vnet_sysuninit, DB_CMD_MEMSAFE)
 {
 	struct vnet_sysinit *vs;
 
@@ -799,7 +799,7 @@ DB_SHOW_COMMAND(vnet_sysuninit, db_show_vnet_sysuninit)
 }
 
 #ifdef VNET_DEBUG
-DB_SHOW_COMMAND(vnetrcrs, db_show_vnetrcrs)
+DB_SHOW_COMMAND_FLAGS(vnetrcrs, db_show_vnetrcrs, DB_CMD_MEMSAFE)
 {
 	struct vnet_recursion *vnr;
 
diff --git a/sys/opencrypto/crypto.c b/sys/opencrypto/crypto.c
index 7231b390302f..ec2a639e04ce 100644
--- a/sys/opencrypto/crypto.c
+++ b/sys/opencrypto/crypto.c
@@ -1951,7 +1951,7 @@ db_show_drivers(void)
 	}
 }
 
-DB_SHOW_COMMAND(crypto, db_show_crypto)
+DB_SHOW_COMMAND_FLAGS(crypto, db_show_crypto, DB_CMD_MEMSAFE)
 {
 	struct cryptop *crp;
 	struct crypto_ret_worker *ret_worker;
diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c
index ba8e60e66f1f..1afcb45c4d2b 100644
--- a/sys/vm/uma_core.c
+++ b/sys/vm/uma_core.c
@@ -5822,7 +5822,7 @@ get_uma_stats(uma_keg_t kz, uma_zone_t z, uint64_t *allocs, uint64_t *used,
 	return (((int64_t)*used + *cachefree) * kz->uk_size);
 }
 
-DB_SHOW_COMMAND(uma, db_show_uma)
+DB_SHOW_COMMAND_FLAGS(uma, db_show_uma, DB_CMD_MEMSAFE)
 {
 	const char *fmt_hdr, *fmt_entry;
 	uma_keg_t kz;
@@ -5895,7 +5895,7 @@ DB_SHOW_COMMAND(uma, db_show_uma)
 	}
 }
 
-DB_SHOW_COMMAND(umacache, db_show_umacache)
+DB_SHOW_COMMAND_FLAGS(umacache, db_show_umacache, DB_CMD_MEMSAFE)
 {
 	uma_zone_t z;
 	uint64_t allocs, frees;
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index ab9d21c3a0b8..06e463f3f753 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -2706,7 +2706,7 @@ vm_object_in_map(vm_object_t object)
 	return 0;
 }
 
-DB_SHOW_COMMAND(vmochk, vm_object_check)
+DB_SHOW_COMMAND_FLAGS(vmochk, vm_object_check, DB_CMD_MEMSAFE)
 {
 	vm_object_t object;
 
@@ -2804,7 +2804,7 @@ vm_object_print(
 	vm_object_print_static(addr, have_addr, count, modif);
 }
 
-DB_SHOW_COMMAND(vmopag, vm_object_print_pages)
+DB_SHOW_COMMAND_FLAGS(vmopag, vm_object_print_pages, DB_CMD_MEMSAFE)
 {
 	vm_object_t object;
 	vm_pindex_t fidx;
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index cb7ce428db28..e7500e9d3e71 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -5533,7 +5533,7 @@ vm_page_assert_pga_writeable(vm_page_t m, uint16_t bits)
 
 #include <ddb/ddb.h>
 
-DB_SHOW_COMMAND(page, vm_page_print_page_info)
+DB_SHOW_COMMAND_FLAGS(page, vm_page_print_page_info, DB_CMD_MEMSAFE)
 {
 
 	db_printf("vm_cnt.v_free_count: %d\n", vm_free_count());
@@ -5547,7 +5547,7 @@ DB_SHOW_COMMAND(page, vm_page_print_page_info)
 	db_printf("vm_cnt.v_inactive_target: %d\n", vm_cnt.v_inactive_target);
 }
 
-DB_SHOW_COMMAND(pageq, vm_page_print_pageq_info)
+DB_SHOW_COMMAND_FLAGS(pageq, vm_page_print_pageq_info, DB_CMD_MEMSAFE)
 {
 	int dom;
 
diff --git a/sys/vm/vm_phys.c b/sys/vm/vm_phys.c
index 45c624fdd451..856cd3ec83b8 100644
--- a/sys/vm/vm_phys.c
+++ b/sys/vm/vm_phys.c
@@ -1860,7 +1860,7 @@ vm_phys_early_startup(void)
 /*
  * Show the number of physical pages in each of the free lists.
  */
-DB_SHOW_COMMAND(freepages, db_show_freepages)
+DB_SHOW_COMMAND_FLAGS(freepages, db_show_freepages, DB_CMD_MEMSAFE)
 {
 	struct vm_freelist *fl;
 	int flind, oind, pind, dom;
diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c
index 8e3c7eb27078..ec4f821f99ed 100644
--- a/sys/x86/x86/local_apic.c
+++ b/sys/x86/x86/local_apic.c
@@ -1701,7 +1701,7 @@ apic_idt_to_irq(u_int apic_id, u_int vector)
 /*
  * Dump data about APIC IDT vector mappings.
  */
-DB_SHOW_COMMAND(apic, db_show_apic)
+DB_SHOW_COMMAND_FLAGS(apic, db_show_apic, DB_CMD_MEMSAFE)
 {
 	struct intsrc *isrc;
 	int i, verbose;
@@ -1765,7 +1765,7 @@ dump_mask(const char *prefix, uint32_t v, int base)
 }
 
 /* Show info from the lapic regs for this CPU. */
-DB_SHOW_COMMAND(lapic, db_show_lapic)
+DB_SHOW_COMMAND_FLAGS(lapic, db_show_lapic, DB_CMD_MEMSAFE)
 {
 	uint32_t v;
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202207182206.26IM6qeW048141>