diff --git a/libr/esil/esil_trace.c b/libr/esil/esil_trace.c index 49c8a1e15ffb9..2603112e21991 100644 --- a/libr/esil/esil_trace.c +++ b/libr/esil/esil_trace.c @@ -192,6 +192,16 @@ static bool trace_hook_reg_read(REsil *esil, const char *name, ut64 *res, int *s return ret; } +static bool trace_reg_write(REsil *esil, const char *name, ut64 val) { + // ignore + return true; +} + +static bool trace_mem_write(REsil *esil, ut64 addr, const ut8 *buf, int len) { + // ignore + return true; +} + static bool trace_hook_reg_write(REsil *esil, const char *name, ut64 *val) { bool ret = false; // eprintf ("[ESIL] REG WRITE %s 0x%08"PFMT64x"\n", name, *val); @@ -341,6 +351,8 @@ R_API void r_esil_trace_op(REsil *esil, struct r_anal_op_t *op) { esil->cb.hook_reg_write = trace_hook_reg_write; esil->cb.hook_mem_read = trace_hook_mem_read; esil->cb.hook_mem_write = trace_hook_mem_write; + esil->cb.reg_write = trace_reg_write; + esil->cb.mem_write = trace_mem_write; /* evaluate esil expression */ const int esil_verbose = esil->verbose; esil->verbose = 0; // disable verbose logs when tracing diff --git a/test/db/esil/x86_32 b/test/db/esil/x86_32 index e23a76aa1ccad..0f5708a36356a 100644 --- a/test/db/esil/x86_32 +++ b/test/db/esil/x86_32 @@ -2462,3 +2462,20 @@ esp before :0x00178000 esp after :0x00178000 EOF RUN + +NAME=push ax +FILE=- +ARGS=-a x86 -b 32 +CMDS=<