DragonFlyBSD Kernel Audit
DF-1078 / verify.log
← back to finding ↓ download raw
=== (1) raw rip/rsp/rbp prints in db_nextframe TRAP/SYSCALL/INTERRUPT cases ===
			rip = tf->tf_rip;
			rbp = tf->tf_rbp;
			db_printf(
	    "--- trap %016lx, rip = %016lx, rsp = %016lx, rbp = %016lx ---\n",
			    tf->tf_trapno, rip, rsp, rbp);
		}
		break;
	case SYSCALL:
		{
			rip = tf->tf_rip;
			rbp = tf->tf_rbp;
			db_printf(
	"--- syscall %016lx, rip = %016lx, rsp = %016lx, rbp = %016lx ---\n",
			    tf->tf_rax, rip, rsp, rbp);
		}
		break;
	case INTERRUPT:
		tf = (struct trapframe *)((long)*fp + 16);
		{
			rip = tf->tf_rip;
			rbp = tf->tf_rbp;
			db_printf(
	    "--- interrupt, rip = %016lx, rsp = %016lx, rbp = %016lx ---\n",
			    rip, rsp, rbp);
		}
		break;

=== (2) %p stack-frame address prints in db_stack_trace_cmd ===
				break;
			}
			db_printf("%p does not look like a stack frame, skipping\n", (char *)&frame->f_frame + i);
		}
		if (i == 4096) {
			db_printf("Unable to find anything that looks like a stack frame\n");
			return;
		}
		frame = (void *)((char *)frame + i);
		db_printf("Trace beginning at frame %p\n", frame);
		callpc = (db_addr_t)db_get_value((long)&frame->f_retaddr, 8, FALSE);
	}

=== (3) vkernel64 is MISSING the Xfast_syscall boundary stop ===
vkernel64 db_trace.c (expect no match):
  (no Xfast_syscall stop in vkernel64 — confirmed missing)
pc64 db_trace.c sibling (has the stop):
434:		if (name && strcmp(name, "Xfast_syscall") == 0)

=== (4) db_putchar routes to kprintf -> msgbuf when !db_active ===
 */
static void
db_putchar(int c, void *arg)
{
	/*
	 * If not in the debugger, output data to both the console and
	 * the message buffer.
	 */
	if (!db_active) {
		if (c == '\r' || c == '\n' || c == '\t' ||
		    isprint(c)) {
			kprintf("%c", c);
		} else {
			kprintf("?");
		}
		if (!db_active)
			return;
		if (c == '\r' || c == '\n')
			db_check_interrupt();
		return;
	}

	crit_enter_hard();

	if (c > ' ' && c <= '~') {
	    /*

=== (5) VKERNEL64 config enables DDB + DDB_TRACE + INVARIANTS by default ===
58:options 	DDB
59:options 	DDB_TRACE
60:options 	INVARIANTS

=== (6) vkernel64 is NOT the running kernel (GENERIC is) ===
DragonFly 6.5-DEVELOPMENT #0: Thu Jul  2 06:02:54 UTC 2026