partial memory dump

Vijay.Singh at nokia.com Vijay.Singh at nokia.com
Tue Mar 8 12:03:08 PST 2005


Hello all. I am trying to allow a FreeBSD based kernel to crash dump even if configured swap is not enough to fill entire physical memory. This is because there could be 2G RAM on the system. I assume that most pages would not be mapped. 

The algorithm to do this is to have a bitmask, with bits set for pages: from 0 to Maxmem, and then adding pages from USRSTACK to vm_map_max(kmem_map).  This is done in scsi_da.c, dadump() routine. I am able to get the dump, and after savecore collects it from swap I get the kernel and core files. However I am not able to get the stack trace. 

Anything in the design (pages) that I might have missed?

nexthop[admin]# gdb -k kernel.2 vmcore.2
GDB is free software and you are welcome to 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.
GDB 4.16 (i386-unknown-freebsd), 
Copyright 1996 Free Software Foundation, Inc...(no debugging symbols found)...
IdlePTD 69f000
current pcb at 4dd794
panic: page fault
#0  0xf6371ade in boot (cannot read proc at 0xca6c0400
)
(kgdb) bt
#0  0xf6371ade in boot (cannot read proc at 0xca6c0400
)
cannot read proc at 0xca6c0400

br,
vijay



More information about the freebsd-hackers mailing list