| 33 | |
| 34 | |
| 35 | class dump_line: |
| 36 | def __init__(self, line_str): |
| 37 | self.mem = [] |
| 38 | self.err = False |
| 39 | self.cnt = 1 |
| 40 | self.pid = None |
| 41 | self.size = None |
| 42 | self.overhead = None |
| 43 | self.seq = None |
| 44 | self.addr = None |
| 45 | self.parse_line(line_str) |
| 46 | |
| 47 | def parse_line(self, line_str): |
| 48 | match = re.search( |
| 49 | r"\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+((?:\s+0x[0-9a-fA-F]+)+)", line_str |
| 50 | ) |
| 51 | if match: |
| 52 | self.pid = int(match.group(1)) |
| 53 | self.size = int(match.group(2)) |
| 54 | self.overhead = int(match.group(3)) |
| 55 | self.seq = int(match.group(4)) |
| 56 | addresses = match.group(5).split() |
| 57 | self.addr = addresses[0] |
| 58 | self.mem = addresses[1:] |
| 59 | else: |
| 60 | self.err = True |
| 61 | |
| 62 | |
| 63 | class log_output: |