From ed84b58af57809a743e5be6f6ea53c079c50b765 Mon Sep 17 00:00:00 2001 From: obscuren Date: Fri, 6 Mar 2015 16:58:52 +0100 Subject: [PATCH] Debug option for VM & command line flag --- cmd/ethereum/main.go | 3 ++- cmd/utils/flags.go | 13 ++++++++++--- eth/backend.go | 4 ++++ vm/common.go | 3 +++ vm/vm.go | 4 ++-- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go index 1133bd6f72..d9fbabdb73 100644 --- a/cmd/ethereum/main.go +++ b/cmd/ethereum/main.go @@ -108,7 +108,8 @@ runtime will execute the file and exit. utils.RPCEnabledFlag, utils.RPCListenAddrFlag, utils.RPCPortFlag, - utils.VMTypeFlag, + utils.VMDebugFlag, + //utils.VMTypeFlag, } // missing: diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index fb80ac7084..d363ef2800 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -26,9 +26,15 @@ import ( var ( // General settings - VMTypeFlag = cli.IntFlag{ - Name: "vm", - Usage: "Virtual Machine type: 0 is standard VM, 1 is debug VM", + /* + VMTypeFlag = cli.IntFlag{ + Name: "vm", + Usage: "Virtual Machine type: 0 is standard VM, 1 is debug VM", + } + */ + VMDebugFlag = cli.BoolFlag{ + Name: "vmdebug", + Usage: "Virtual Machine debug output", } KeyRingFlag = cli.StringFlag{ Name: "keyring", @@ -152,6 +158,7 @@ func GetEthereum(clientID, version string, ctx *cli.Context) *eth.Ethereum { LogLevel: ctx.GlobalInt(LogLevelFlag.Name), LogFormat: ctx.GlobalString(LogFormatFlag.Name), MinerThreads: ctx.GlobalInt(MinerThreadsFlag.Name), + VmDebug: ctx.GlobalBool(VMDebugFlag.Name), MaxPeers: ctx.GlobalInt(MaxPeersFlag.Name), Port: ctx.GlobalString(ListenPortFlag.Name), diff --git a/eth/backend.go b/eth/backend.go index 1c711a775a..7999375107 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -20,6 +20,7 @@ import ( "github.com/ethereum/go-ethereum/p2p/discover" "github.com/ethereum/go-ethereum/p2p/nat" "github.com/ethereum/go-ethereum/rpc" + "github.com/ethereum/go-ethereum/vm" "github.com/ethereum/go-ethereum/whisper" ) @@ -43,6 +44,7 @@ type Config struct { LogLevel int KeyRing string LogFormat string + VmDebug bool MaxPeers int Port string @@ -212,6 +214,8 @@ func New(config *Config) (*Ethereum, error) { eth.net.ListenAddr = ":" + config.Port } + vm.Debug = config.VmDebug + return eth, nil } diff --git a/vm/common.go b/vm/common.go index 9191533356..b391bb8c25 100644 --- a/vm/common.go +++ b/vm/common.go @@ -9,6 +9,9 @@ import ( var vmlogger = logger.NewLogger("VM") +// Global Debug flag indicating Debug VM (full logging) +var Debug bool + type Type byte const ( diff --git a/vm/vm.go b/vm/vm.go index 837be8c4d6..890a7dd2c1 100644 --- a/vm/vm.go +++ b/vm/vm.go @@ -30,8 +30,8 @@ type Vm struct { func New(env Environment) *Vm { lt := LogTyPretty - // lt = LogTyDiff - return &Vm{debug: true, env: env, logTy: lt, Recoverable: true} + + return &Vm{debug: Debug, env: env, logTy: lt, Recoverable: true} } func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {