Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Sep 2004 14:42:51 +0200
From:      Phil Schulz <ph.schulz@gmx.de>
To:        "Dan Mahoney, System Admin" <danm@prime.gushi.org>
Cc:        questions@freebsd.org
Subject:   Debugging a panic (was: )
Message-ID:  <4154164B.1070100@gmx.de>
In-Reply-To: <20040923152340.O9636@prime.gushi.org>
References:  <20040923152340.O9636@prime.gushi.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Dan Mahoney, System Admin wrote:
> After recently upgrading to 4.10, on a machine that's known for getting 
> 100+ days uptime, I got the following error on an unexpected reboot:
> 
[Panic]
> 
> What could cause this?
> 
> -Dan Mahoney
> 

Hi Dan!

  I'm no expert at all, but I'll give it a try...

  If you cannot reproduce the panic, you might face a hardware problem. 
Memory, harddisk, power supply, etc. are the usual suspects. If you, 
however, can reproduce the panic, please continue to read.

  Please note that the steps outlined below are things I did on a 
5.3-BETA5 system. I might have forgotten some things while I have 
included other, unneeded steps.

  There are a few requirements to really debug a panic:

  * Build a kernel w/ debug symbols. Add "makeoptions DEBUG=-g" to your
    kernel configuration file.
  * Set up the "dumpdev" and "dumpdir" variables in rc.conf - mine are
    set to:
      dumpdev="/dev/ad0s2b"
      dumpdir="/var/crash"
  * If the machine doesn't aim at minimum downtime, you might want to
    build a kernel debugger into your kernel, so the kernel can drop into
    the debugger in case of a panic. At the debugger prompt, you can type
    "backtrace" to get a useful trace on how the kernel ended up in the
    place where it crashed. I've also found that you need to type "call
    doadump" to get a crash dump before you can "reset" the machine. This
    might or might not apply to 4.x, however.
  * If you're aiming at minimum downtime and have set the machine to
    automatically reset itself in case of a panic, you'll have to analyze
    the core dump to get a trace.

  It is my understanding that the instruction pointer listed in the 
panic message points to the place where things blew up. You can use the 
address to point to the line in the source code, provided you have built 
in debug symbols and you have a core dump. However, the address might 
point to different places with different kernel configurations, i.e. the 
adress you gave us only applies to your kernel.
  I also think that debug symbols do not have any negative impact on 
performance, so it's a good idea to keep them around.
  Someone please correct me if I'm wrong.

   The link below [1] and a quick Google search for "Debugging Kernel 
Problems" will point you to documentation I've found very useful.

HTH,

Phil.

[1]http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug.html

-- 
Did you know...

If you play a Windows 2000 CD backwards, you hear satanic messages,
but what's worse is when you play it forward....
                                      ...it installs Windows 2000

   -- Alfred Perlstein on chat@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4154164B.1070100>