aboutsummaryrefslogtreecommitdiff
path: root/scripts/trace_filter.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/trace_filter.py')
-rwxr-xr-xscripts/trace_filter.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/trace_filter.py b/scripts/trace_filter.py
new file mode 100755
index 000000000..5fbf51db4
--- /dev/null
+++ b/scripts/trace_filter.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+
+import argparse
+import re
+
+MARK_LIST = ['tracing_mark_write']
+
+
+def get_arg():
+ parser = argparse.ArgumentParser(description='Filter a log file to a trace file.')
+ parser.add_argument('log_file', metavar='log_file', type=str,
+ help='The input log file to process.')
+ parser.add_argument('trace_file', metavar='trace_file', type=str, nargs='?', default='trace.systrace',
+ help='The output trace file. If not provided, defaults to \'trace.systrace\'.')
+
+ args = parser.parse_args()
+
+ print('log_file: ' + args.log_file)
+ print('trace_file: ' + args.trace_file)
+
+ return args
+
+
+if __name__ == '__main__':
+ args = get_arg()
+
+ with open(args.log_file, 'r') as f:
+ content = f.read()
+
+ # compile regex pattern
+ pattern = re.compile(r'(^.+-[0-9]+\s\[[0-9]]\s[0-9]+\.[0-9]+:\s('
+ + "|".join(MARK_LIST)
+ + r'):\s[B|E]\|[0-9]+\|.+$)', re.M)
+
+ matches = pattern.findall(content)
+
+ # write to args.trace_file
+ with open(args.trace_file, 'w') as f:
+ f.write('# tracer: nop\n#\n')
+ for match in matches:
+ f.write(match[0] + '\n')