aboutsummaryrefslogtreecommitdiffstats
path: root/gcov-lock
blob: 218ac243f4461b7602015f5d4f9336f11801f474 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/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
	}
}