Date: Sat, 17 Apr 2021 00:51:01 +0100 From: Johannes Totz <johannes@jo-t.de> To: freebsd-hackers@freebsd.org Subject: Debugging signal 11 Message-ID: <s5d7t6$bdl$1@ciao.gmane.io>
next in thread | raw e-mail | index | archive | help
Hi there,
My init(8) is crashing with a signal 11.
I've added a breakpoint() in kern_sig.c:
static int
issignal(struct thread *td)
{
// [snip]
case (intptr_t)SIG_DFL:
/*
* Don't take default actions on system processes.
*/
if (p->p_pid <= 1) {
#ifdef DIAGNOSTIC
/*
* Are you sure you want to ignore SIGSEGV
* in init? XXX
*/
printf("Process (pid %lu) got signal %d\n",
(u_long)p->p_pid, sig);
breakpoint(); // added by me
#endif
break; /* == ignore */
}
// [snip]
}
That breaks to DDB where I can call dump. So far so good.
But how do I get back to the stack(trace) and instruction that caused
the segv? Either in DDB or KGDB?
Thanks,
Johannes
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?s5d7t6$bdl$1>
