From c78b9e6245a8b382183b28edbdb3fd727a5583c6 Mon Sep 17 00:00:00 2001 From: Daniel Liu Date: Tue, 24 Sep 2024 18:05:53 +0800 Subject: [PATCH] core/vm: for tracing, do not report post-op memory (#24867) --- core/vm/interpreter.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/vm/interpreter.go b/core/vm/interpreter.go index 1e48dbd097..c4b4b4143b 100644 --- a/core/vm/interpreter.go +++ b/core/vm/interpreter.go @@ -255,11 +255,15 @@ func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) ( if err != nil || !contract.UseGas(dynamicCost) { return nil, ErrOutOfGas } + // Do tracing before memory expansion + if in.cfg.Debug { + in.cfg.Tracer.CaptureState(in.evm, pc, op, gasCopy, cost, callContext, in.returnData, in.evm.depth, err) + logged = true + } if memorySize > 0 { mem.Resize(memorySize) } - } - if in.cfg.Debug { + } else if in.cfg.Debug { in.cfg.Tracer.CaptureState(in.evm, pc, op, gasCopy, cost, callContext, in.returnData, in.evm.depth, err) logged = true }