⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bdump

📁 早期freebsd实现
💻
字号:
# Count the number of buffers in the buffer cache for which# bp->b_flags & $bufcount_match is non-0.##	@(#)bdump	8.1 (Berkeley) 6/10/93set $bufcount_match=0x020000define bufcount	set $i = 0	set $num = 0	while ($i < 512)		set $bp = bufhash[$i].b_forw		while ($bp != bufhash[$i].b_back)			if ($bp->b_flags & $bufcount_match)				set $num++			end			set $bp = $bp->b_forw		end		# printf "bucket: %d cumulative %d\n", $i, $num		set $i++	end	printf "Number of buffers with flags & %x in hash table: %d\n", $bufcount_match, $numend# Dump the entire buffer cache.define bufdump	set $i = 0	set $num = 0	while ($i < 512)		set $bp = bufhash[$i].b_forw		while ($bp != bufhash[$i].b_back)			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			set $num++			set $bp = $bp->b_forw		end		set $i++	end	printf "Number of buffers in hash table: %d\n", $numend# Dump the buffers in a particular hashbucket.# usage: dumpbucket bucketnumberdefine dumpbucket	set $num = 0	set $bp = bufhash[$arg0].b_forw	while ($bp != bufhash[$arg0].b_back)		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		set $num++		set $bp = $bp->b_forw	end	printf "Number of buffers in bucket %d: %d\n", $arg0, $numend# Dump the buffers on the empty and age queuesdefine bdumpnew	set $i = 0	set $num = 0	while ($i < 4)		printf "Queue %d\n", $i		set $bp = (struct buf *)bufqueues[$i].qe_next		while ($bp)			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			set $num++			set $bp = (struct buf *)$bp->b_freelist.qe_next		end		set $i++	end	printf "Number of buffers in free lists: %d\n", $numenddefine dumpchain	set $bp = (struct buf *)$arg0	while ($bp)		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		set $bp = (struct buf *)$bp->b_vnbufs.qe_next	endenddefine dumpq	set $num = 0	printf "Queue %d\n", $arg0	set $bp = (struct buf *)bufqueues[$arg0].qe_next	while ($bp)		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		set $num++		set $bp = (struct buf *)$bp->b_freelist.qe_next	end	printf "Number of buffers on queue %d: %d\n", $arg0, $numend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -