mirror of
https://github.com/LIV2/amitools.git
synced 2025-12-05 22:22:45 +00:00
fixed internal mem trace with -T
This commit is contained in:
parent
f3b6ede154
commit
aa7e265d9e
@ -323,6 +323,10 @@ class Machine(object):
|
||||
self.mem.w32(0, mem0)
|
||||
self.mem.w32(4, mem4)
|
||||
|
||||
def set_mem(self, mem):
|
||||
"""replace the memory instance with a wrapped one, e.g. for tracing"""
|
||||
self.mem = mem
|
||||
|
||||
def set_cycles_per_run(self, num):
|
||||
self.cycles_per_run = num
|
||||
|
||||
|
||||
@ -7,6 +7,43 @@ class TraceMemory:
|
||||
self.mem = mem
|
||||
self.trace_mgr = trace_mgr
|
||||
|
||||
def cleanup(self):
|
||||
self.mem.cleanup()
|
||||
|
||||
def get_ram_size_kib(self):
|
||||
return self.mem.get_ram_size_kib()
|
||||
|
||||
def get_ram_size_bytes(self):
|
||||
return self.mem.get_ram_size_bytes()
|
||||
|
||||
def reserve_special_range(self, num_pages=1):
|
||||
return self.mem.reserve_special_range(num_pages)
|
||||
|
||||
def set_special_range_read_func(self, page_addr, width, func):
|
||||
return self.mem.set_special_range_read_func(page_addr, width, func)
|
||||
|
||||
def set_special_range_write_func(self, page_addr, width, func):
|
||||
return self.mem.set_special_range_write_func(page_addr, width, func)
|
||||
|
||||
def set_special_range_read_funcs(
|
||||
self, addr, num_pages=1, r8=None, r16=None, r32=None
|
||||
):
|
||||
return self.mem.set_special_range_read_funcs(addr, num_pages, r8, r16, r32)
|
||||
|
||||
def set_special_range_write_funcs(
|
||||
self, addr, num_pages=1, w8=None, w16=None, w32=None
|
||||
):
|
||||
return self.mem.set_special_range_write_funcs(addr, num_pages, w8, w16, w32)
|
||||
|
||||
def set_trace_mode(self, on):
|
||||
return self.mem.set_trace_mode(on)
|
||||
|
||||
def set_trace_func(self, func):
|
||||
return self.mem.set_trace_func(func)
|
||||
|
||||
def set_invalid_func(self, func):
|
||||
return self.mem.set_invalid_func(func)
|
||||
|
||||
# memory access
|
||||
def r32(self, addr):
|
||||
val = self.mem.r32(addr)
|
||||
|
||||
@ -34,6 +34,8 @@ class TraceManager(object):
|
||||
self.mem_tracer = TraceMemory(mem, self)
|
||||
if not log_mem_int.isEnabledFor(logging.INFO):
|
||||
log_mem_int.setLevel(logging.INFO)
|
||||
# replace machine mem with trace memory
|
||||
self.machine.set_mem(self.mem_tracer)
|
||||
|
||||
def setup_cpu_mem_trace(self):
|
||||
self.machine.set_cpu_mem_trace_hook(self.trace_cpu_mem)
|
||||
@ -126,7 +128,7 @@ class TraceManager(object):
|
||||
return sym, src
|
||||
|
||||
def _trace_mem(self, log, mode, width, addr, value, text="", addon=""):
|
||||
val = self.trace_val_str[width] % value
|
||||
val = self.trace_val_str[width] % int(value)
|
||||
info, label = self._get_mem_info(addr)
|
||||
if text == "" and addon == "" and label is not None:
|
||||
text, addon = self._get_label_extra(label, mode, addr, width, value)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user