Inspired by MPASS.
VNPASS repeats the first line for panicstr, I don't know if that's a problem apart from looking weird.
Sample output:
VNASSERT failed: vp->v_holdcnt == 1234 not true at /usr/src/sys/kern/vfs_subr.c:3148 (vputx) 0xfffff80003ba71e8: type VDIR usecount 7, writecount 0, refcount 1 mountedhere 0 flags (VV_ROOT) lock type devfs: EXCL by thread 0xfffff800027d96e0 (pid 1, kernel, tid 100002) panic: foo test
VNASSERT failed: vp->v_holdcnt == 1234 not true at /usr/src/sys/kern/vfs_subr.c:3148 (vputx) 0xfffff80003ba51e8: type VDIR usecount 7, writecount 0, refcount 1 mountedhere 0 flags (VV_ROOT) lock type devfs: EXCL by thread 0xfffff800027d96e0 (pid 1, kernel, tid 100002) panic: condition vp->v_holdcnt == 1234 not met at /usr/src/sys/kern/vfs_subr.c:3148 (vputx)