Home | History | Annotate | Line # | Download | only in gdbscripts
vchain revision 1.2.104.1
      1 #	$NetBSD: vchain,v 1.2.104.1 2006/10/22 06:07:09 yamt Exp $
      2 
      3 #	@(#)vchain	8.1 (Berkeley) 6/10/93
      4 #
      5 # Given a vnode, follow its mount pointers
      6 define vchain
      7 	set $num = 0
      8 
      9 	set $vp=(struct vnode *)$arg0
     10 	while ($vp)
     11 		printf "vp: 0x%x freelist_next: 0x%x usecount: %d flags: 0x%x\n", $vp, $vp->v_freelist.tqe_next, $vp->v_uobj.uo_refs, $vp->v_flag
     12 		set $num++
     13 		set $vp = $vp->v_mntvnodes.le_next
     14 	end
     15 	printf "Number of vnodes: %d\n", $num
     16 end
     17 
     18 define vprint
     19 	set $vp=(struct vnode *)$arg0
     20 	set $ip=(struct inode *)$vp->v_data
     21 end
     22 
     23 # print the vnode chain for a given mount point
     24 define mp_vchain
     25 	set $mp = (struct mount *)$arg0
     26 	vchain $mp->mnt_vnodelist.lh_first
     27 end
     28 
     29 # print vnode chains for all mount points
     30 define vall
     31 	set $mp=mountlist.cqh_first
     32 	while ($mp)
     33 		printf "\tmount point at 0x%x\n", $mp
     34 		mp_vchain $mp
     35 		set $mp=$mp->mnt_list.cqe_next
     36 
     37 		# "break"
     38 		if ((const void *)$mp == (const void *)&mountlist)
     39 			set $mp = 0
     40 		end
     41 	end
     42 end
     43