def perf_cmd(cmd): if len(sys.argv) >= 2 and sys.argv[1] == "list": pager, proc = get_pager() l = subprocess.Popen(cmd, stdout=pager) l.wait() print >>pager emap.dumpevents(pager, proc is not None) if proc: pager.close() proc.wait() elif len(sys.argv) >= 2 and (sys.argv[1] == "report" or sys.argv[1] == "stat"): direct = version.has_name if not direct: for w in sys.argv: if w == "--tui": direct = True break if direct: ret = subprocess.call(cmd) latego.cleanup() sys.exit(ret) pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout raw = lambda e: " " + emap.getraw(int(e.group(1), 16)) for i in pipe: i = re.sub("[rR]aw 0x([0-9a-f]{4,})", raw, i) i = re.sub("r([0-9a-f]{4,})", raw, i) i = re.sub("(cpu/.*?/)", lambda e: emap.getperf(e.group(1)), i) print i, pipe.close() latego.cleanup() else: sys.exit(subprocess.call(cmd))
def perf_cmd(cmd): if len(sys.argv) >= 2 and sys.argv[1] == "list": pager, proc = get_pager() l = subprocess.Popen(cmd, stdout=pager) l.wait() print >>pager emap.dumpevents(pager, proc != None) if proc: pager.close() proc.wait() elif len(sys.argv) >= 2 and (sys.argv[1] == "report" or sys.argv[1] == "stat"): direct = version.has_name if not direct: for w in sys.argv: if w == "--tui": direct = True break if direct: ret = subprocess.call(cmd) latego.cleanup() sys.exit(ret) pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout raw = lambda e: " " + emap.getraw(int(e.group(1), 16)) for i in pipe: i = re.sub("[rR]aw 0x([0-9a-f]{4,})", raw, i) i = re.sub("r([0-9a-f]{4,})", raw, i) i = re.sub("(cpu/.*?/)", lambda e: emap.getperf(e.group(1)), i) print i, pipe.close() latego.cleanup() else: sys.exit(subprocess.call(cmd))
def perf_cmd(cmd): if len(sys.argv) >= 2 and sys.argv[1] == "list": pager, proc = get_pager() l = subprocess.Popen(cmd, shell=True, stdout=pager) l.wait() print >>pager emap.dumpevents(pager, proc != None) if proc: pager.close() proc.wait() elif len(sys.argv) >= 2 and (sys.argv[1] == "report" or sys.argv[1] == "stat"): for w in sys.argv: if w == "--tui": os.system(cmd) latego.cleanup() sys.exit(0) pipe = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout raw = lambda e: " " + emap.getraw(int(e.group(1), 16)) for i in pipe: i = re.sub("[rR]aw 0x([0-9a-f]{4,})", raw, i) i = re.sub("r([0-9a-f]{4,})", raw, i) i = re.sub("(cpu/.*?/)", lambda e: emap.getperf(e.group(1)), i) print i, pipe.close() latego.cleanup() else: os.system(cmd)