Added/changed logging

This commit is contained in:
obscuren 2014-07-15 20:35:55 +02:00
parent 34da3b4fa8
commit 7a410643ac
2 changed files with 12 additions and 3 deletions

@ -143,6 +143,7 @@ func (self *StateObject) getStorage(k []byte) *ethutil.Value {
func (self *StateObject) setStorage(k []byte, value *ethutil.Value) { func (self *StateObject) setStorage(k []byte, value *ethutil.Value) {
key := ethutil.LeftPadBytes(k, 32) key := ethutil.LeftPadBytes(k, 32)
//fmt.Printf("%x %v\n", key, value)
self.storage[string(key)] = value.Copy() self.storage[string(key)] = value.Copy()
} }
@ -158,9 +159,9 @@ func (self *StateObject) Sync() {
valid, t2 := ethtrie.ParanoiaCheck(self.state.trie) valid, t2 := ethtrie.ParanoiaCheck(self.state.trie)
if !valid { if !valid {
self.state.trie = t2 statelogger.Infof("Warn: PARANOIA: Different state storage root during copy %x vs %x\n", self.state.trie.Root, t2.Root)
statelogger.Infoln("Warn: PARANOIA: Different state storage root during copy") self.state.trie = t2
} }
} }

@ -155,6 +155,15 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
// XXX Leave this Println intact. Don't change this to the log system. // XXX Leave this Println intact. Don't change this to the log system.
// Used for creating diffs between implementations // Used for creating diffs between implementations
if vm.logTy == LogTyDiff { if vm.logTy == LogTyDiff {
switch op {
case STOP, RETURN, SUICIDE:
closure.object.Sync()
closure.object.state.EachStorage(func(key string, value *ethutil.Value) {
value.Decode()
fmt.Printf("%x %x\n", new(big.Int).SetBytes([]byte(key)).Bytes(), value.Bytes())
})
}
b := pc.Bytes() b := pc.Bytes()
if len(b) == 0 { if len(b) == 0 {
b = []byte{0} b = []byte{0}
@ -184,7 +193,6 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
var mult *big.Int var mult *big.Int
y, x := stack.Peekn() y, x := stack.Peekn()
val := closure.GetStorage(x) val := closure.GetStorage(x)
//if val.IsEmpty() && len(y.Bytes()) > 0 {
if val.BigInt().Cmp(ethutil.Big0) == 0 && len(y.Bytes()) > 0 { if val.BigInt().Cmp(ethutil.Big0) == 0 && len(y.Bytes()) > 0 {
mult = ethutil.Big2 mult = ethutil.Big2
} else if !val.IsEmpty() && len(y.Bytes()) == 0 { } else if !val.IsEmpty() && len(y.Bytes()) == 0 {