On Sat, 23 Jan 1999, Matthew Dillon wrote:

> 
> :I made it happen again by doing the same installworld but this time I
> :caught it in the debugger.  I'll leave the machine up for a while in case
> :someone has some idea of how to debug it.  The stacktrace looks like this:
> :
> :#0  Debugger () at ../../alpha/alpha/db_interface.c:260
> :#1  0xfffffc000036c2c0 in panic () at ../../kern/kern_shutdown.c:444
> :#2  0xfffffc00004942fc in vm_page_alloc () at ../../vm/vm_page.c:1041
> :#3  0xfffffc00003a1b54 in allocbuf () at ../../kern/vfs_bio.c:1791
> 
>     The panic message should be printing the address of the vm_page_t that
>     it caught.
> 
>     From the debugger, dump that vm_page_t with 'print'.
> 
>     print *0xADDRESS
> 
>     Do about 8 print's bumping the address by 4 ( in hex ) for each.
> 
>     It would be even better if we could figure out the contents and type
>     of the underlying object.

I have full symbols:

(gdb) fr 2
#2  0xfffffc00004942fc in vm_page_alloc () at ../../vm/vm_page.c:1041
1041                            panic("found dirty cache page %p", m);
(gdb) l
1036             */
1037
1038            if (qtype == PQ_CACHE) {
1039    #if !defined(MAX_PERF)
1040                    if (m->dirty)
1041                            panic("found dirty cache page %p", m);
1042
1043    #endif
1044                    vm_page_busy(m);
1045                    vm_page_protect(m, VM_PROT_NONE);
(gdb) p m
$4 = (struct vm_page *) 0xfffffe0000108f40
(gdb) p *m
$5 = {pageq = {tqe_next = 0x0, tqe_prev = 0xfffffc000052ecc8}, hnext = 0x0, 
  listq = {tqe_next = 0xfffffe0000090fe0, tqe_prev = 0xfffffe00000bb6b8}, 
  object = 0xfffffe00050e2a10, pindex = 12, phys_addr = 88940544, queue = 172, 
  flags = 128, pc = 41, wire_count = 0, hold_count = 0, act_count = 5 '\005', 
  busy = 0 '\000', valid = 65535, dirty = 65535}


--
Doug Rabson                             Mail:  d...@nlsystems.com
Nonlinear Systems Ltd.                  Phone: +44 181 442 9037



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to