ktrace: support AF_NETLINK in ktrstruct
Some checks are pending
Cross-build Kernel / ${{ matrix.target_arch }} ${{ matrix.os }} (${{ matrix.compiler }}) (clang-14, /usr/lib/llvm-14/bin, ubuntu-22.04, bmake libarchive-dev clang-14 lld-14, amd64, amd64) (push) Waiting to run
Cross-build Kernel / ${{ matrix.target_arch }} ${{ matrix.os }} (${{ matrix.compiler }}) (clang-14, /usr/lib/llvm-14/bin, ubuntu-22.04, bmake libarchive-dev clang-14 lld-14, arm64, aarch64) (push) Waiting to run
Cross-build Kernel / ${{ matrix.target_arch }} ${{ matrix.os }} (${{ matrix.compiler }}) (clang-18, /opt/homebrew/opt/llvm@18/bin, macos-latest, bmake libarchive llvm@18, amd64, amd64) (push) Waiting to run
Cross-build Kernel / ${{ matrix.target_arch }} ${{ matrix.os }} (${{ matrix.compiler }}) (clang-18, /opt/homebrew/opt/llvm@18/bin, macos-latest, bmake libarchive llvm@18, arm64, aarch64) (push) Waiting to run
Cross-build Kernel / ${{ matrix.target_arch }} ${{ matrix.os }} (${{ matrix.compiler }}) (clang-18, /usr/lib/llvm-18/bin, ubuntu-24.04, bmake libarchive-dev clang-18 lld-18, amd64, amd64) (push) Waiting to run
Cross-build Kernel / ${{ matrix.target_arch }} ${{ matrix.os }} (${{ matrix.compiler }}) (clang-18, /usr/lib/llvm-18/bin, ubuntu-24.04, bmake libarchive-dev clang-18 lld-18, arm64, aarch64) (push) Waiting to run

Right now, sockaddr_nl parameters are not displayed in kdump output,
however they are present in the structure in ktrace.out file when
ktrace is run.

Reviewed by:		melifaro, markj, glebius
Differential Revision:	https://reviews.freebsd.org/D47411
This commit is contained in:
Artem Hevorhian 2024-11-19 22:19:15 +00:00 committed by Gleb Smirnoff
parent a20249443b
commit 7678dac437

View File

@ -59,6 +59,7 @@
#endif
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netlink/netlink.h>
#include <ctype.h>
#include <capsicum_helpers.h>
#include <err.h>
@ -1944,6 +1945,15 @@ ktrsockaddr(struct sockaddr *sa)
printf("%.*s", (int)sizeof(sa_un.sun_path), sa_un.sun_path);
break;
}
case AF_NETLINK: {
struct sockaddr_nl sa_nl;
memset(&sa_nl, 0, sizeof(sa_nl));
memcpy(&sa_nl, sa, sa->sa_len);
printf("netlink[pid=%u, groups=0x%x]",
sa_nl.nl_pid, sa_nl.nl_groups);
break;
}
default:
printf("unknown address family");
}