#!/usr/bin/env python3 import sys import os import re def process_file(fname): nlines = 0 procname = "" with open(fname) as f: for line in f: nlines += 1 if re.search("^{", line): nlines = 0 elif re.search("^}", line) and procname and (nlines > 0): print("{:08d}:{}".format(nlines-1, procname)) procname = "" else: m = re.search("^(\\w+)\\s*\\(", line) if m: procname = m.group(1) def recursive_search(path): for file in os.listdir(path): if (file == ".") or (file == ".."): continue full_name = os.path.join(path, file) if not os.path.islink(full_name): if os.path.isdir(full_name): recursive_search(full_name) if re.search("\\.c$", file): process_file(full_name) if len(sys.argv) < 2: print("Usage " + sys.argv[0] + " ") sys.exit(1) start_path = sys.argv[1] recursive_search(start_path)