From 842015ba499b8cd2d2f98da631accd8ce329c698 Mon Sep 17 00:00:00 2001 From: "Maarten A. Breddels" Date: Wed, 6 Jan 2021 19:59:29 +0100 Subject: [PATCH] feat: read_events support with and without stacktraces --- per4m/perf2trace.py | 7 ++----- per4m/perfutils.py | 3 +++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/per4m/perf2trace.py b/per4m/perf2trace.py index d27895b..238ee14 100644 --- a/per4m/perf2trace.py +++ b/per4m/perf2trace.py @@ -136,15 +136,12 @@ def gil2trace(input, verbose=1, take_probe="python:take_gil$", take_probe_return time_on_gil = defaultdict(int) time_wait_gil = defaultdict(int) jitter = 1e-3 # add 1 ns for proper sorting - for header in input: + for header, _ in read_events(input): try: header = header.rstrip() if verbose >= 2: print(header) - # just ignore stack traces and seperators - if not header or header.split()[0].isdigit(): - continue # parse the header comm, pid, cpu, time, event, *other = header.split() pid = int(pid) @@ -422,7 +419,7 @@ def perf2trace(input, verbose=1, store_runing=False, store_sleeping=True, all_tr except BrokenPipeError: break except: - print("error on line", header, other, file=sys.stderr) + print("error on line", repr(header), stacktrace, file=sys.stderr) raise diff --git a/per4m/perfutils.py b/per4m/perfutils.py index 0fabe78..de146dd 100644 --- a/per4m/perfutils.py +++ b/per4m/perfutils.py @@ -3,6 +3,9 @@ def read_events(input): stacktrace = [] header = None for line in input: + if first_line and line and line[0].isspace(): + yield line, None + continue line = line.strip() if first_line: header = line