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