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