From aa7b91b900cb0f31c82fda937adef7dbfc0d534c Mon Sep 17 00:00:00 2001 From: tracer-ysyx Date: Wed, 13 Mar 2024 17:01:04 +0800 Subject: [PATCH] =?UTF-8?q?>=20compile=20NEMU=20ysyx=5F22040000=20?= =?UTF-8?q?=E6=9D=8E=E5=BF=83=E6=9D=A8=20Linux=20calcite=206.6.19=20#1-Nix?= =?UTF-8?q?OS=20SMP=20PREEMPT=5FDYNAMIC=20Fri=20Mar=20=201=2012:35:11=20UT?= =?UTF-8?q?C=202024=20x86=5F64=20GNU/Linux=20=2017:01:04=20=20up=20=20=206?= =?UTF-8?q?:37,=20=202=20users,=20=20load=20average:=200.28,=200.37,=200.5?= =?UTF-8?q?3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nemu/Kconfig | 5 +++++ nemu/src/memory/paddr.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/nemu/Kconfig b/nemu/Kconfig index 20f7705..e4916c1 100644 --- a/nemu/Kconfig +++ b/nemu/Kconfig @@ -156,6 +156,11 @@ config ITRACE_BUFFER int "Buffer size for intruction trace (unit: number of instructions)" default 10 +config MTRACE + depends on TRACE && TARGET_NATIVE_ELF && ENGINE_INTERPRETER + bool "Enable memory tracer" + default n + config DIFFTEST depends on TARGET_NATIVE_ELF bool "Enable differential testing" diff --git a/nemu/src/memory/paddr.c b/nemu/src/memory/paddr.c index ee30e70..1434f82 100644 --- a/nemu/src/memory/paddr.c +++ b/nemu/src/memory/paddr.c @@ -53,6 +53,7 @@ void init_mem() { word_t paddr_read(paddr_t addr, int len) { if (likely(in_pmem(addr))) return pmem_read(addr, len); IFDEF(CONFIG_DEVICE, return mmio_read(addr, len)); + IFDEF(CONFIG_MTRACE, printf("R " FMT_WORD "%d\n", addr, len)); out_of_bound(addr); return 0; } @@ -60,5 +61,6 @@ word_t paddr_read(paddr_t addr, int len) { void paddr_write(paddr_t addr, int len, word_t data) { if (likely(in_pmem(addr))) { pmem_write(addr, len, data); return; } IFDEF(CONFIG_DEVICE, mmio_write(addr, len, data); return); + IFDEF(CONFIG_MTRACE, printf("W " FMT_WORD "%d D" FMT_WORD "\n", addr, len, data)); out_of_bound(addr); }