diff options
author | Yoichi Hirai <i@yoichihirai.com> | 2016-09-30 18:22:42 +0800 |
---|---|---|
committer | Yoichi Hirai <i@yoichihirai.com> | 2016-09-30 23:36:00 +0800 |
commit | bb6115b737a05e3b8bf70ff2ad74c703589627cb (patch) | |
tree | 72dc4e8df47729e283735a7a3ecb59930c66b2c5 /core/vm/vm.go | |
parent | b4cc8cbac4c1756c179e497c53ee83515669fe13 (diff) | |
download | go-tangerine-bb6115b737a05e3b8bf70ff2ad74c703589627cb.tar.gz go-tangerine-bb6115b737a05e3b8bf70ff2ad74c703589627cb.tar.zst go-tangerine-bb6115b737a05e3b8bf70ff2ad74c703589627cb.zip |
vm, ethapi: add `limit` option to traceTransaction
that specifies the maximum number of elements in the `structLogs`
output. This option is useful for debugging a transaction that
involves a large number of repetition.
For example,
```
debug.traceTransaction(tx, {disableStorage: true, limit: 2})
```
shows at most the first two steps in the `structLogs`.
Diffstat (limited to 'core/vm/vm.go')
-rw-r--r-- | core/vm/vm.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/vm/vm.go b/core/vm/vm.go index 9d7b55058..6fee7178c 100644 --- a/core/vm/vm.go +++ b/core/vm/vm.go @@ -183,7 +183,10 @@ func (evm *EVM) Run(contract *Contract, input []byte) (ret []byte, err error) { mem.Resize(newMemSize.Uint64()) // Add a log message if evm.cfg.Debug { - evm.cfg.Tracer.CaptureState(evm.env, pc, op, contract.Gas, cost, mem, stack, contract, evm.env.Depth(), nil) + err = evm.cfg.Tracer.CaptureState(evm.env, pc, op, contract.Gas, cost, mem, stack, contract, evm.env.Depth(), nil) + if err != nil { + return nil, err + } } if opPtr := evm.jumpTable[op]; opPtr.valid { |