Debug option for VM & command line flag

This commit is contained in:
obscuren 2015-03-06 16:58:52 +01:00
parent 548e104171
commit ed84b58af5
5 changed files with 21 additions and 6 deletions

View File

@ -108,7 +108,8 @@ runtime will execute the file and exit.
utils.RPCEnabledFlag,
utils.RPCListenAddrFlag,
utils.RPCPortFlag,
utils.VMTypeFlag,
utils.VMDebugFlag,
//utils.VMTypeFlag,
}
// missing:

View File

@ -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),

View File

@ -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
}

View File

@ -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 (

View File

@ -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) {