Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Apr 2026 17:09:35 +0000
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: f3ca689d176f - stable/15 - kdump: tweaks for the extended errors decoding
Message-ID:  <69ea524f.3e0f3.6b7af7ea@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by kib:

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

commit f3ca689d176f6653ddccd22674b9b19755dcc55d
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-04-21 06:13:04 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-04-23 17:09:06 +0000

    kdump: tweaks for the extended errors decoding
    
    (cherry picked from commit 5c89d661a023c83a2001cf5b354b09c7d3ac91d8)
---
 usr.bin/kdump/Makefile |  1 +
 usr.bin/kdump/kdump.c  | 23 ++++++++++++++++++++---
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/usr.bin/kdump/Makefile b/usr.bin/kdump/Makefile
index 2c5c456a6de5..cef87f665b46 100644
--- a/usr.bin/kdump/Makefile
+++ b/usr.bin/kdump/Makefile
@@ -5,6 +5,7 @@
 PROG=		kdump
 SRCS=		kdump.c subr.c
 CFLAGS+=	-I${SRCTOP}/usr.bin/ktrace
+CFLAGS+=	-I${SRCTOP}/lib/libc/gen
 
 LIBADD=		sysdecode
 .if ${MK_CASPER} != "no"
diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c
index d3f2ac882e61..9ebd18646474 100644
--- a/usr.bin/kdump/kdump.c
+++ b/usr.bin/kdump/kdump.c
@@ -40,6 +40,7 @@
 #include <sys/_bitset.h>
 #include <sys/bitset.h>
 #include <sys/errno.h>
+#include <sys/exterr_cat.h>
 #include <sys/time.h>
 #include <sys/uio.h>
 #include <sys/event.h>
@@ -2442,15 +2443,31 @@ bad_size:
 	return;
 }
 
+static const char * const cat_to_filenames[] = {
+#include <exterr_cat_filenames.h>
+};
+
+static const char *
+cat_to_filename(int category)
+{
+	if (category < 0 || (unsigned)category >= nitems(cat_to_filenames) ||
+	    cat_to_filenames[category] == NULL)
+		return ("unknown");
+	return (cat_to_filenames[category]);
+}
+
 static void
 ktrexterr(struct ktr_exterr *ke)
 {
+	char *msg;
 	struct uexterror *ue;
 
 	ue = &ke->ue;
-	printf("{ errno %d category %u (src line %u) p1 %#jx p2 %#jx %s }\n",
-	    ue->error, ue->cat, ue->src_line,
-	    (uintmax_t)ue->p1, (uintmax_t)ue->p2, ue->msg);
+	asprintf(&msg, ue->msg, (uintmax_t)ue->p1, (uintmax_t)ue->p2);
+	printf("{ errno %d %s:%u \"%s\" (category %u p1 %#jx p2 %#jx) }\n",
+	    ue->error, cat_to_filename(ue->cat), ue->src_line, msg,
+	    ue->cat, (uintmax_t)ue->p1, (uintmax_t)ue->p2);
+	free(msg);
 }
 
 static void


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ea524f.3e0f3.6b7af7ea>