commit - 953577a60a43f37a917990deebe3e6cd60d5a1e8
commit + ccd04962ccf5c5e7b07bb25c9d03b84d9f3d7470
blob - 8f910855ef6a6cce63daa1ae1e222c92bbf208a1
blob + 6904c0a1b2071c5e247fce74145623ddbcf9457c
--- memtrace_calliope_trns.py
+++ memtrace_calliope_trns.py
allocated = 0
reset = None
buffer = ""
+ heap_start = 0
+ heap_end = 0
def __init__(self):
self.r_malloc = re.compile("(?:microbit_)?malloc:\s+(?:NATIVE\s+)?(?:ALLOCATED:)\s+(\d+)\s+\[(0x[0-9a-f]+)\]")
for c in rx_input:
if c == '\r' or c == '\n':
if len(self.buffer):
- out += self.trace_line(self.buffer)
+ out += self.trace_line(self.buffer) + c
else:
- out += "\n"
+ out += c
self.buffer = ""
continue
else:
def trace_line(self, line):
# strip newline and carriage return
- line = line.rstrip('\n').rstrip('\r')
+ # line = line.rstrip('\n').rstrip('\r')
m = self.r_heap_size.search(line)
if m:
self.mem[addr] = int(m.group(1))
self.allocated += int(m.group(1))
free = self.max - self.allocated
- out += "\033[1m== (%03d) \033[3%sm%8d\033[0m [%8x] \033[31m+%-6d\033[0m (%s)\n" % \
+ out += "\033[1m== (%03d) \033[3%sm%8d\033[0m [%8x] \033[31m+%-6d\033[0m (%s)" % \
(len(self.mem), self.colorize(free), free, addr, int(m.group(1)), line)
return out
out += "\033[33m!! (%03d) WARN: free(0x%x)\033[0m\n" % (len(self.mem), addr)
free = self.max - self.allocated
- out += "\033[1m== (%03d) \033[3%sm%8d\033[0m [%8x] \033[92m-%-6d\033[0m (%s)\n" % \
+ out += "\033[1m== (%03d) \033[3%sm%8d\033[0m [%8x] \033[92m-%-6d\033[0m (%s)" % \
(len(self.mem), self.colorize(free), free, addr, freed, line)
return out
return out
# print all other lines as is, so we can still use the log functionality
- return line + '\n'
+ return line