1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-14 06:42:58 +08:00
lvgl/scripts/trace_filter.py
_VIFEXTech 06b3b62475
feat(profiler): add built-in profiler (#4255)
Signed-off-by: FASTSHIFT <vifextech@foxmail.com>
Co-authored-by: W-Mai <1341398182@qq.com>
2023-06-05 16:53:57 +02:00

42 lines
1.2 KiB
Python
Executable File

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