Subversion Repositories planix.SVN

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/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