Module Name: src Committed By: riastradh Date: Mon Jul 17 12:55:04 UTC 2023
Modified Files: src/sys/ddb: db_command.c Log Message: ddb: Teach `show all tstiles' to show the type of each lock. To generate a diff of this commit: cvs rdiff -u -r1.184 -r1.185 src/sys/ddb/db_command.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/ddb/db_command.c diff -u src/sys/ddb/db_command.c:1.184 src/sys/ddb/db_command.c:1.185 --- src/sys/ddb/db_command.c:1.184 Tue Jul 11 11:03:31 2023 +++ src/sys/ddb/db_command.c Mon Jul 17 12:55:03 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: db_command.c,v 1.184 2023/07/11 11:03:31 riastradh Exp $ */ +/* $NetBSD: db_command.c,v 1.185 2023/07/17 12:55:03 riastradh Exp $ */ /* * Copyright (c) 1996, 1997, 1998, 1999, 2002, 2009, 2019 @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: db_command.c,v 1.184 2023/07/11 11:03:31 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: db_command.c,v 1.185 2023/07/17 12:55:03 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_aio.h" @@ -1376,8 +1376,8 @@ db_show_all_tstiles(db_expr_t addr, bool if (modif[0] == 't') trace = true; - db_printf("%5s %5s %16s %16s %16s\n", - "PID", "LID", "COMMAND", "WAITING-FOR", "WAIT-CHANNEL"); + db_printf("%5s %5s %16s %16s %8s %16s\n", + "PID", "LID", "COMMAND", "WAITING-FOR", "TYPE", "WAIT-CHANNEL"); for (p = db_proc_first(); p != NULL; p = db_proc_next(p)) { pid_t pid = -1; char comm[MAXCOMLEN + 1] = ""; @@ -1395,6 +1395,7 @@ db_show_all_tstiles(db_expr_t addr, bool lwpid_t lid = -1; struct syncobj *sobj = NULL; struct lwp *owner = NULL; + char sobjname[sizeof(sobj->sobj_name)] = ""; db_read_bytes((db_addr_t)&l->l_wchan, sizeof(wchan), (char *)&wchan); @@ -1417,22 +1418,26 @@ db_show_all_tstiles(db_expr_t addr, bool db_read_bytes((db_addr_t)&l->l_syncobj, sizeof(sobj), (char *)&sobj); if (sobj == NULL) { - db_printf("%5ld %5ld %16s %16s %16s\n", + db_printf("%5ld %5ld %16s %16s %8s %16s\n", (long)pid, (long)lid, comm, "(unknown)", + "", wchanname); goto next; } + db_read_bytes((db_addr_t)&sobj->sobj_name, + sizeof(sobjname), sobjname); owner = db_syncobj_owner(sobj, wchan); - db_printf("%5ld %5ld %16s %16lx %16s\n", + db_printf("%5ld %5ld %16s %16lx %8s %16s\n", (long)pid, (long)lid, comm, (long)owner, + sobjname, wchanname); if (trace && owner != NULL) {