Home | History | Annotate | Line # | Download | only in gdbscripts
      1 #	$NetBSD: bdump,v 1.2 1997/02/12 23:35:06 gwr Exp $
      2 
      3 # Count the number of buffers in the buffer cache for which
      4 # bp->b_flags & $bufcount_match is non-0.
      5 #
      6 #	@(#)bdump	8.1 (Berkeley) 6/10/93
      7 
      8 set $bufcount_match=0x020000
      9 define bufcount
     10 
     11 	set $i = 0
     12 	set $num = 0
     13 
     14 	while ($i < 512)
     15 
     16 		set $bp = bufhash[$i].b_forw
     17 		while ($bp != bufhash[$i].b_back)
     18 			if ($bp->b_flags & $bufcount_match)
     19 				set $num++
     20 			end
     21 			set $bp = $bp->b_forw
     22 		end
     23 		# printf "bucket: %d cumulative %d\n", $i, $num
     24 		set $i++
     25 	end
     26 	printf "Number of buffers with flags & %x in hash table: %d\n", $bufcount_match, $num
     27 end
     28 
     29 # Dump the entire buffer cache.
     30 
     31 define bufdump
     32 
     33 	set $i = 0
     34 	set $num = 0
     35 
     36 	while ($i < 512)
     37 
     38 		set $bp = bufhash[$i].b_forw
     39 		while ($bp != bufhash[$i].b_back)
     40 			printf "bp=0x%x flags=0x%x vp=0x%x lblkno=0x%x blkno=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_blkno
     41 			set $num++
     42 			set $bp = $bp->b_forw
     43 		end
     44 		set $i++
     45 	end
     46 	printf "Number of buffers in hash table: %d\n", $num
     47 end
     48 
     49 # Dump the buffers in a particular hashbucket.
     50 # usage: dumpbucket bucketnumber
     51 define dumpbucket
     52 
     53 	set $num = 0
     54 	set $bp = bufhash[$arg0].b_forw
     55 	while ($bp != bufhash[$arg0].b_back)
     56 		printf "bp=0x%x flags=0x%x vp=0x%x lblkno=0x%x blkno=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_blkno
     57 		set $num++
     58 		set $bp = $bp->b_forw
     59 	end
     60 	printf "Number of buffers in bucket %d: %d\n", $arg0, $num
     61 end
     62 
     63 # Dump the buffers on the empty and age queues
     64 
     65 define bdumpnew
     66 
     67 	set $i = 0
     68 	set $num = 0
     69 
     70 	while ($i < 4)
     71 
     72 		printf "Queue %d\n", $i
     73 		set $bp = (struct buf *)bufqueues[$i].qe_next
     74 		while ($bp)
     75 			printf "bp=0x%x flags=0x%x vp=0x%x lbn=%d size=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_bufsize
     76 			set $num++
     77 			set $bp = (struct buf *)$bp->b_freelist.qe_next
     78 		end
     79 		set $i++
     80 	end
     81 	printf "Number of buffers in free lists: %d\n", $num
     82 end
     83 
     84 define dumpchain
     85 
     86 	set $bp = (struct buf *)$arg0
     87 	while ($bp)
     88 		printf "bp=0x%x flags=0x%x bn=0x%x lbn=%d count=%d size=%d\n", $bp, $bp->b_flags, $bp->b_blkno, $bp->b_lblkno, $bp->b_bcount, $bp->b_bufsize
     89 		set $bp = (struct buf *)$bp->b_vnbufs.qe_next
     90 	end
     91 end
     92 
     93 define dumpq
     94 
     95 	set $num = 0
     96 
     97 	printf "Queue %d\n", $arg0
     98 	set $bp = (struct buf *)bufqueues[$arg0].qe_next
     99 	while ($bp)
    100 		printf "bp=0x%x flags=0x%x vp=0x%x lbn=%d size=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_bufsize
    101 		set $num++
    102 		set $bp = (struct buf *)$bp->b_freelist.qe_next
    103 	end
    104 	printf "Number of buffers on queue %d: %d\n", $arg0, $num
    105 end
    106