mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-17 17:33:47 +00:00
core/vm: capture error and output in StructLogger
This commit is contained in:
parent
7a59a9380e
commit
fc2c730a51
1 changed files with 12 additions and 8 deletions
|
|
@ -100,6 +100,8 @@ type StructLogger struct {
|
||||||
|
|
||||||
logs []StructLog
|
logs []StructLog
|
||||||
changedValues map[common.Address]Storage
|
changedValues map[common.Address]Storage
|
||||||
|
output []byte
|
||||||
|
err error
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewStructLogger returns a new logger
|
// NewStructLogger returns a new logger
|
||||||
|
|
@ -172,17 +174,19 @@ 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 {
|
func (l *StructLogger) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) error {
|
||||||
fmt.Printf("0x%x", output)
|
l.output = output
|
||||||
if err != nil {
|
l.err = err
|
||||||
fmt.Printf(" error: %v\n", err)
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// StructLogs returns a list of captured log entries
|
// StructLogs returns the captured log entries.
|
||||||
func (l *StructLogger) StructLogs() []StructLog {
|
func (l *StructLogger) StructLogs() []StructLog { return l.logs }
|
||||||
return l.logs
|
|
||||||
}
|
// Error returns the VM error captured by the trace.
|
||||||
|
func (l *StructLogger) Error() error { return l.err }
|
||||||
|
|
||||||
|
// Output returns the VM return value captured by the trace.
|
||||||
|
func (l *StructLogger) Output() []byte { return l.output }
|
||||||
|
|
||||||
// WriteTrace writes a formatted trace to the given writer
|
// WriteTrace writes a formatted trace to the given writer
|
||||||
func WriteTrace(writer io.Writer, logs []StructLog) {
|
func WriteTrace(writer io.Writer, logs []StructLog) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue