Date: Thu, 16 Dec 2010 01:34:38 -0800 From: perryh@pluto.rain.com To: avg@freebsd.org Cc: freebsd-stable@freebsd.org Subject: Re: How to debug a double fault? (Re: Could MSGBUF_SIZE be made a loader tunable?) Message-ID: <4d09dd2e.iVncbZ/gHBXX0WdL%perryh@pluto.rain.com> In-Reply-To: <4D08AACB.6060306@freebsd.org> References: <4cfc72a5.3nAjkv8mdrO/NrKQ%perryh@pluto.rain.com> <4CFD0633.9060509@freebsd.org> <4d089a74.vwMJkPEIddt7PIxy%perryh@pluto.rain.com> <4D08AACB.6060306@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Andriy Gapon <avg@freebsd.org> wrote: > on 15/12/2010 12:37 perryh@pluto.rain.com said the following: > > Fatal double fault: > > eip = 0xc07feb98 > > esp = 0xc101e000 > > ebp = 0xc101e004 > > cpuid = 0; apic id = 00 > > panic: double fault > > cpuid = 0 > > > > How do I go about tracking this down? > > Do you have the standard debugging options in your kernel? No, it is 8.1-RELEASE GENERIC with only the name changed and the (first attempt) msgbufsize patches applied. I was trying to minimize changes to GENERIC, so as to minimize the opportunity to screw something up, and I had this silly idea that something this simple might "just work." It does occur to me to wonder whether any debugger would be functional this early, before even the first line of the signon message has been displayed. Is it possible, given the loader messages, to come up with a base address which could be used to compare the eip value with the kernel symbol table? Granted this won't provide a traceback, but even knowing in which function it crashed would be a start. > BTW, are you sure that you correctly placed initialization of > msgbufsize ? I am not at all sure of that, and am not sufficiently familiar with the sequence of events early in intiialization to know how to find out -- although I suppose the observed crash might not be altogether surprising if the kernel message buffer got allocated with a zero size :( Apart from the name, msgbufsize is set up in exactly the same way and place -- in init_param1() -- as maxswzone and maxbcache. Perhaps that is not early enough; any idea what would be a better example?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4d09dd2e.iVncbZ/gHBXX0WdL%perryh>