ref: b2ffb6ccc5a5a4fcc996cc5db14ea7e2da13a411
dir: /rc/bin/umem/
#!/bin/rc # umem pid [binary] - print summary of allocate blocks in a running process rfork e if(! ~ $#* 1 2){ echo 'usage: umem pid [binary]' >[1=2] exit usage } p=$1 binary=() if(~ $#* 2) binary=$2 echo 'blocksummary()' | acid -lpool -lleak $p $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