diff --git a/tools/mtrace/mtrace-reader.py b/tools/mtrace/mtrace-reader.py index 06b005a9392e..d0acbd1cfce6 100755 --- a/tools/mtrace/mtrace-reader.py +++ b/tools/mtrace/mtrace-reader.py @@ -13,10 +13,19 @@ import struct import os import sys +import argparse READ_BUFFER = 16384 MTRACE_FILE = "/sys/kernel/debug/sof/mtrace/core0" +parser = argparse.ArgumentParser() +parser.add_argument('-m', '--mark-chunks', + action='store_true') + +args = parser.parse_args() + +chunk_idx = 0 + fd = os.open(MTRACE_FILE, os.O_RDONLY) while fd >= 0: # direct unbuffered os.read() must be used to comply with @@ -35,4 +44,10 @@ data_len = header[0] data = read_bytes[4:4+data_len] - os.write(sys.stdout.fileno(), data) + if (args.mark_chunks): + chunk_msg = "\n--- Chunk #{} start (size: {}) ---\n" .format(chunk_idx, data_len) + sys.stdout.write(chunk_msg) + + sys.stdout.buffer.write(data) + sys.stdout.flush() + chunk_idx += 1