Kernel 登录FreeBSD内核代码

Kernel 登录FreeBSD内核代码,kernel,freebsd,logging,Kernel,Freebsd,Logging,我在FreeBSD内核中添加了一些自定义加密,这会引起恐慌。我想在崩溃文件中没有出现的函数中记录一些变量值 我使用了printf和log函数,但在/var/log/messages或kern.log中没有显示任何内容 log(LOG_DEBUG, "line 1012"); printf("line 1012\n"); 这可能是因为您的内核在syslogd(8)有机会将它们写入日志文件之前陷入恐慌 你想要的是撞车。当您使用crashdump时,您可以像这样查看恐慌前消息: dmesg-N/bo

我在FreeBSD内核中添加了一些自定义加密,这会引起恐慌。我想在崩溃文件中没有出现的函数中记录一些变量值

我使用了printf和log函数,但在/var/log/messages或kern.log中没有显示任何内容

log(LOG_DEBUG, "line 1012");
printf("line 1012\n");

这可能是因为您的内核在syslogd(8)有机会将它们写入日志文件之前陷入恐慌

你想要的是撞车。当您使用crashdump时,您可以像这样查看恐慌前消息:

dmesg-N/boot/kernel/kernel-M/var/crash/vmcore.last


当然,当您使用crashdump时,您可以使用kgdb直接检查变量。

谢谢。我确实生成了崩溃转储并使用了kgdb,问题在于当死机发生时堆栈上不存在的函数。我使用了您的
dmesg
建议,但它只显示引导日志。有什么想法吗?Dmesg应该显示崩溃前打印的代码。至于函数-是的,这是因为编译器优化。您可能还希望编译DDB并使用它。