aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-07-04 21:32:10 +0800
committerobscuren <geffobscura@gmail.com>2014-07-04 21:32:10 +0800
commit90eb4f1939f7b0389d5784b889cc0e5d2b3451f7 (patch)
treec812cf882cb5a22ea7ffd4a061be2ac286dcfa58 /ethchain
parent23b5b5fa36530eb82543d7d877f8e9e1900232cf (diff)
downloaddexon-90eb4f1939f7b0389d5784b889cc0e5d2b3451f7.tar.gz
dexon-90eb4f1939f7b0389d5784b889cc0e5d2b3451f7.tar.zst
dexon-90eb4f1939f7b0389d5784b889cc0e5d2b3451f7.zip
Debug output, minor fixes and tweaks
* Script compile length fix * Transition fix
Diffstat (limited to 'ethchain')
-rw-r--r--ethchain/state_manager.go15
-rw-r--r--ethchain/state_transition.go11
-rw-r--r--ethchain/vm.go7
3 files changed, 23 insertions, 10 deletions
diff --git a/ethchain/state_manager.go b/ethchain/state_manager.go
index cec424583..f3fd92913 100644
--- a/ethchain/state_manager.go
+++ b/ethchain/state_manager.go
@@ -181,11 +181,24 @@ func (sm *StateManager) Process(block *Block, dontReact bool) (err error) {
if err != nil {
if len(receipts) == len(block.Receipts()) {
for i, receipt := range block.Receipts() {
- statelogger.Debugf("diff (r) %v ~ %x <=> (c) %v ~ %x (%x)\n", receipt.CumulativeGasUsed, receipt.PostState[0:4], receipts[i].CumulativeGasUsed, receipts[i].PostState[0:4], receipt.Tx.Hash())
+ statelogger.Infof("diff (r) %v ~ %x <=> (c) %v ~ %x (%x)\n", receipt.CumulativeGasUsed, receipt.PostState[0:4], receipts[i].CumulativeGasUsed, receipts[i].PostState[0:4], receipt.Tx.Hash())
}
} else {
statelogger.Warnln("Unable to print receipt diff. Length didn't match", len(receipts), "for", len(block.Receipts()))
}
+ } else {
+ /*
+ for i, receipt := range receipts {
+ gu := new(big.Int)
+ if i != 0 {
+ gu.Sub(receipt.CumulativeGasUsed, receipts[i-1].CumulativeGasUsed)
+ } else {
+ gu.Set(receipt.CumulativeGasUsed)
+ }
+
+ statelogger.Infof("[r] %v ~ %x (%x)\n", gu, receipt.PostState[0:4], receipt.Tx.Hash())
+ }
+ */
}
}()
diff --git a/ethchain/state_transition.go b/ethchain/state_transition.go
index 16e1f124b..6ea9a837d 100644
--- a/ethchain/state_transition.go
+++ b/ethchain/state_transition.go
@@ -201,8 +201,7 @@ func (self *StateTransition) TransitionState() (err error) {
// script section for the state object.
self.data = nil
- statelogger.Debugln("~> init")
- code, err := self.Eval(receiver.Init(), receiver)
+ code, err := self.Eval(receiver.Init(), receiver, "init")
if err != nil {
//self.state.Set(snapshot)
self.state.ResetStateObject(receiver)
@@ -213,8 +212,7 @@ func (self *StateTransition) TransitionState() (err error) {
receiver.script = code
} else {
if len(receiver.Script()) > 0 {
- statelogger.Debugln("~> code")
- _, err = self.Eval(receiver.Script(), receiver)
+ _, err = self.Eval(receiver.Script(), receiver, "code")
if err != nil {
//self.state.Set(snapshot)
self.state.ResetStateObject(receiver)
@@ -240,7 +238,7 @@ func (self *StateTransition) transferValue(sender, receiver *StateObject) error
return nil
}
-func (self *StateTransition) Eval(script []byte, context *StateObject) (ret []byte, err error) {
+func (self *StateTransition) Eval(script []byte, context *StateObject, typ string) (ret []byte, err error) {
var (
block = self.block
initiator = self.Sender()
@@ -259,6 +257,7 @@ func (self *StateTransition) Eval(script []byte, context *StateObject) (ret []by
Value: self.value,
})
vm.Verbose = true
+ vm.Fn = typ
ret, err = Call(vm, closure, self.data)
@@ -279,7 +278,7 @@ func Call(vm *Vm, closure *Closure, data []byte) (ret []byte, err error) {
// TODO FIXME ASAP
context.state.trie = t2
- statelogger.Debugln("Warn: PARANOIA: Different state object roots during copy")
+ statelogger.Infoln("Warn: PARANOIA: Different state object roots during copy")
}
}
diff --git a/ethchain/vm.go b/ethchain/vm.go
index 3a7aa8c58..cfedadb08 100644
--- a/ethchain/vm.go
+++ b/ethchain/vm.go
@@ -56,6 +56,7 @@ type Vm struct {
Hook DebugHook
BreakPoints []int64
Stepping bool
+ Fn string
}
type DebugHook func(step int, op OpCode, mem *Memory, stack *Stack, stateObject *StateObject) bool
@@ -107,7 +108,7 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
}
}()
- vmlogger.Debugf("(~) %x gas: %v (d) %x\n", closure.object.Address(), closure.Gas, closure.Args)
+ vmlogger.Debugf("(%s) %x gas: %v (d) %x\n", vm.Fn, closure.object.Address(), closure.Gas, closure.Args)
var (
op OpCode
@@ -577,7 +578,7 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
stack.Push(val.BigInt())
- vm.Printf(" {0x%x} 0x%x", loc.Bytes(), val.Bytes())
+ vm.Printf(" {0x%x : 0x%x}", loc.Bytes(), val.Bytes())
case SSTORE:
require(2)
val, loc := stack.Popn()
@@ -586,7 +587,7 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
// Add the change to manifest
vm.state.manifest.AddStorageChange(closure.Object(), loc.Bytes(), val)
- vm.Printf(" {0x%x} 0x%x", loc, val)
+ vm.Printf(" {0x%x : 0x%x}", loc, val)
case JUMP:
require(1)
pc = stack.Pop()