core/vm: add labels to vm trace sections

This commit is contained in:
Felix Lange 2017-07-06 11:26:57 +02:00
parent e9c9e69560
commit 1ff140ba91

View file

@ -196,21 +196,28 @@ func (l *StructLogger) StructLogs() []StructLog {
// 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) {
for _, log := range logs { for _, log := range logs {
fmt.Fprintf(writer, "%-10spc=%08d gas=%v cost=%v", log.Op, log.Pc, log.Gas, log.GasCost) fmt.Fprintf(writer, "%-16spc=%08d gas=%v cost=%v", log.Op, log.Pc, log.Gas, log.GasCost)
if log.Err != nil { if log.Err != nil {
fmt.Fprintf(writer, " ERROR: %v", log.Err) fmt.Fprintf(writer, " ERROR: %v", log.Err)
} }
fmt.Fprintf(writer, "\n") fmt.Fprintln(writer)
if len(log.Stack) > 0 {
fmt.Fprintln(writer, "Stack:")
for i := len(log.Stack) - 1; i >= 0; i-- { for i := len(log.Stack) - 1; i >= 0; i-- {
fmt.Fprintf(writer, "%08d %x\n", len(log.Stack)-i-1, math.PaddedBigBytes(log.Stack[i], 32)) fmt.Fprintf(writer, "%08d %x\n", len(log.Stack)-i-1, math.PaddedBigBytes(log.Stack[i], 32))
} }
}
if len(log.Memory) > 0 {
fmt.Fprintln(writer, "Memory:")
fmt.Fprint(writer, hex.Dump(log.Memory)) fmt.Fprint(writer, hex.Dump(log.Memory))
}
if len(log.Storage) > 0 {
fmt.Fprintln(writer, "Storage:")
for h, item := range log.Storage { for h, item := range log.Storage {
fmt.Fprintf(writer, "%x: %x\n", h, item) fmt.Fprintf(writer, "%x: %x\n", h, item)
} }
}
fmt.Fprintln(writer) fmt.Fprintln(writer)
} }
} }