From 2a9a6f1fcf9f811d4c51533bba8f6ef7c9939453 Mon Sep 17 00:00:00 2001 From: dm4 Date: Fri, 16 Mar 2018 12:18:24 +0800 Subject: [PATCH 1/3] cmd/evm: print vm output when debug flag is on. --- cmd/evm/runner.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmd/evm/runner.go b/cmd/evm/runner.go index 8a7399840cf7..10ecca85b2d6 100644 --- a/cmd/evm/runner.go +++ b/cmd/evm/runner.go @@ -236,6 +236,10 @@ Gas used: %d } if tracer != nil { tracer.CaptureEnd(ret, initialGas-leftOverGas, execTime, err) + fmt.Printf("0x%x", ret) + if err != nil { + fmt.Printf(" error: %v\n", err) + } } else { fmt.Printf("0x%x\n", ret) if err != nil { From 339c13a2f38c528fecc4c4c91c362622ed87effb Mon Sep 17 00:00:00 2001 From: dm4 Date: Fri, 16 Mar 2018 16:55:21 +0800 Subject: [PATCH 2/3] core/vm: check debug flag for printing output. --- cmd/evm/runner.go | 5 +---- core/vm/logger.go | 7 +++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmd/evm/runner.go b/cmd/evm/runner.go index 10ecca85b2d6..d91fcf36bbfd 100644 --- a/cmd/evm/runner.go +++ b/cmd/evm/runner.go @@ -76,6 +76,7 @@ func runCmd(ctx *cli.Context) error { logconfig := &vm.LogConfig{ DisableMemory: ctx.GlobalBool(DisableMemoryFlag.Name), DisableStack: ctx.GlobalBool(DisableStackFlag.Name), + Debug: ctx.GlobalBool(DebugFlag.Name), } var ( @@ -236,10 +237,6 @@ Gas used: %d } if tracer != nil { tracer.CaptureEnd(ret, initialGas-leftOverGas, execTime, err) - fmt.Printf("0x%x", ret) - if err != nil { - fmt.Printf(" error: %v\n", err) - } } else { fmt.Printf("0x%x\n", ret) if err != nil { diff --git a/core/vm/logger.go b/core/vm/logger.go index 4c820d8b5331..9ba6a15d3285 100644 --- a/core/vm/logger.go +++ b/core/vm/logger.go @@ -45,6 +45,7 @@ type LogConfig struct { DisableMemory bool // disable memory capture DisableStack bool // disable stack capture DisableStorage bool // disable storage capture + Debug bool // print output during capture end Limit int // maximum length of output, but zero means unlimited } @@ -184,6 +185,12 @@ func (l *StructLogger) CaptureFault(env *EVM, pc uint64, op OpCode, gas, cost ui func (l *StructLogger) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) error { l.output = output l.err = err + if l.cfg.Debug { + fmt.Printf("0x%x", output) + if err != nil { + fmt.Printf(" error: %v\n", err) + } + } return nil } From 4635482b30c32dd91200fd6a98cc4f1f7e619534 Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Thu, 22 Mar 2018 09:00:47 +0100 Subject: [PATCH 3/3] main: make structlogger print output correctly --- cmd/evm/runner.go | 4 +--- core/vm/logger.go | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cmd/evm/runner.go b/cmd/evm/runner.go index d91fcf36bbfd..c13e9fb33530 100644 --- a/cmd/evm/runner.go +++ b/cmd/evm/runner.go @@ -235,9 +235,7 @@ Gas used: %d `, execTime, mem.HeapObjects, mem.Alloc, mem.TotalAlloc, mem.NumGC, initialGas-leftOverGas) } - if tracer != nil { - tracer.CaptureEnd(ret, initialGas-leftOverGas, execTime, err) - } else { + if tracer == nil { fmt.Printf("0x%x\n", ret) if err != nil { fmt.Printf(" error: %v\n", err) diff --git a/core/vm/logger.go b/core/vm/logger.go index 9ba6a15d3285..dde1903bf29e 100644 --- a/core/vm/logger.go +++ b/core/vm/logger.go @@ -186,7 +186,7 @@ func (l *StructLogger) CaptureEnd(output []byte, gasUsed uint64, t time.Duration l.output = output l.err = err if l.cfg.Debug { - fmt.Printf("0x%x", output) + fmt.Printf("0x%x\n", output) if err != nil { fmt.Printf(" error: %v\n", err) }