1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-14 06:42:58 +08:00
lvgl/scripts/trace_filter.py

42 lines
1.2 KiB
Python
Raw Normal View History

#!/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')