backtrace() not printing to kernel log

Nate Lawson nate at root.org
Sat May 17 23:04:52 PDT 2003


I've found an annoyance when tracking down a new LoR.  Since
db_print_backtrace() uses db_printf() instead of printf(), the backtrace
doesn't make it to the kernel buffer but is printed directly to the
console.

dmesg:
lock order reversal
 1st 0xc35d5098 vm object (vm object) @ /usr/src/sys/vm/vm_object.c:512
 2nd 0xc082f110 system map (system map) @ /usr/src/sys/vm/vm_kern.c:325
Stack backtrace:

I looked into how to fix this but couldn't come up with a good idea.  The
most obvious thing to do is use a function pointer and check if the
debugger is active.  If so, use db_printf(), otherwise use printf().  But
there doesn't seem to be an architecturally clean way to do this.  Ideas?

-Nate


More information about the freebsd-arch mailing list