Subject: Re: recent dom0 kernels reboot on loading?
To: None <port-xen@NetBSD.org>
From: Mikolaj Golub <to.my.trociny@gmail.com>
List: port-xen
Date: 09/03/2007 10:27:46
On Fri, 31 Aug 2007 21:01:39 +0200 Manuel Bouyer wrote:

 MB> Next would be to find where 0xc04d4f84 is in the kernel. The easiest is to
 MB> build a kernel with makeoptions    DEBUG="-g",
 MB> reboot with it a see what the EIP is when it crash. Then use
 MB> gdb on netbsd.gdb to get the source info:
 MB> list *0xc04d4f84 (or whatever EIP is when the debug kernel crash).

Sorry for delay -- I had no access to xen box during weekend.

Today I have tried it, but without success.

netbsd-XEN3_DOM0.gdb is built with -g option. 

Crash info:

(XEN) ----[ Xen-3.1.0  x86_32  debug=n  Not tainted ]----
(XEN) CPU:    0
(XEN) EIP:    e019:[<c04cc344>]
(XEN) EFLAGS: 00000246   CONTEXT: guest
(XEN) eax: c0955404   ebx: 000003cf   ecx: 00000001   edx: c0955404
(XEN) esi: 00000000   edi: c0955400   ebp: c0a57b0c   esp: c0a57ad0
(XEN) cr0: 8005003b   cr4: 000006d0   cr3: 1ea54000   cr2: 00000000
(XEN) ds: e021   es: e021   fs: 0000   gs: 0000   ss: e021   cs: e019
(XEN) Guest stack trace from esp=c0a57ad0:
(XEN)    00000000 c04cc344 0001e019 00010046 c043535b c0955404 00000000 00000000
(XEN)    00000000 00000000 00000000 c0955404 000003cf 000003c0 c0955400 c0a57b4c

gdb session:

-bash-3.2$ gdb netbsd-XEN3_DOM0.gdb 
GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386--netbsdelf"...
(gdb) list *0xc04cc344
No source file for address 0xc04cc344.

This is just to ensure I try kernel with gdb symbols:

(gdb) list
238     
239     /*
240      * System startup; initialize the world, create process 0, mount root
241      * filesystem, and fork to create init and pagedaemon.  Most of the
242      * hard work is done in the lower-level initialization routines including
243      * startup(), which does memory initialization and autoconfiguration.
244      */
245     void
246     main(void)
247     {

-- 
Mikolaj Golub