#!/usr/bin/awk -f # # Usage: $0 mm/filemap.c.gcov | sort -nr -k4 BEGIN { FS = ":" exec_count = "0" func_name = "" } /[0-9-]+: +[0-9]+:[a-z].*\(.*/ { match($3, /([a-zA-Z_0-9]+)\(/) exec_count = $1 func_name = substr($3, RSTART, RLENGTH-1) } /spin_lock/ { if ($1 > 10000) { sub(/.gcov$/, "", FILENAME) sub(/.*\//, "", FILENAME) sub(/[ \t]+/, "", $2) sub(/[ \t]+/, "", $3) printf "%-20s%6s%12s%12s%40s %s\n", FILENAME, # file name $2, # line number exec_count, # func count $1, # lock count func_name, # func name $3 # lock expr } }