ref: 5030157da9e89da53739b13c36942a5355de669f
dir: /rc/bin/kmem/
#!/bin/rc # kmem [kernel] - print summary of allocate blocks in running kernel rfork e if(! ~ $#* 0 1){ echo 'usage: kmem [kernel]' >[1=2] exit usage } if(~ $#* 1) binary=$1 echo 'kinit(); blocksummary()' | acid -k -lkernel -lpool -lleak $pid $binary | awk ' $1 == "block" { addr=$6 size=$3 alloc=$4 total[alloc] += size count[alloc]++ } $1 == "summary" { alloc=$2 cnt=$3 size=$4 total[alloc] += size count[alloc] += cnt } END{ for(i in count) printf("%6d %11d %s\n", count[i], total[i], i); } ' | sort -nr