DF-1078 / verify.log
=== (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