Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
4fb2905b
Commit
4fb2905b
authored
Jul 05, 2014
by
zelig
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of github.com:ethereum/eth-go into feature/ethutil-refactor
parents
44d0d6ab
b232acd0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
23 deletions
+28
-23
vm.go
ethchain/vm.go
+14
-17
loggers.go
ethlog/loggers.go
+14
-6
No files found.
ethchain/vm.go
View file @
4fb2905b
...
@@ -24,14 +24,10 @@ var (
...
@@ -24,14 +24,10 @@ var (
GasTx
=
big
.
NewInt
(
500
)
GasTx
=
big
.
NewInt
(
500
)
)
)
func
CalculateTxGas
(
initSize
*
big
.
Int
)
*
big
.
Int
{
type
Debugger
interface
{
totalGas
:=
new
(
big
.
Int
)
BreakHook
(
step
int
,
op
OpCode
,
mem
*
Memory
,
stack
*
Stack
,
stateObject
*
StateObject
)
bool
StepHook
(
step
int
,
op
OpCode
,
mem
*
Memory
,
stack
*
Stack
,
stateObject
*
StateObject
)
bool
txTotalBytes
:=
new
(
big
.
Int
)
.
Set
(
initSize
)
BreakPoints
()
[]
int64
txTotalBytes
.
Div
(
txTotalBytes
,
ethutil
.
Big32
)
totalGas
.
Add
(
totalGas
,
new
(
big
.
Int
)
.
Mul
(
txTotalBytes
,
GasSStore
))
return
totalGas
}
}
type
Vm
struct
{
type
Vm
struct
{
...
@@ -53,14 +49,13 @@ type Vm struct {
...
@@ -53,14 +49,13 @@ type Vm struct {
err
error
err
error
// Debugging
// Debugging
Hook
DebugHook
Dbg
Debugger
BreakPoints
[]
int64
BreakPoints
[]
int64
Stepping
bool
Stepping
bool
Fn
string
Fn
string
}
}
type
DebugHook
func
(
step
int
,
op
OpCode
,
mem
*
Memory
,
stack
*
Stack
,
stateObject
*
StateObject
)
bool
type
RuntimeVars
struct
{
type
RuntimeVars
struct
{
Origin
[]
byte
Origin
[]
byte
Block
*
Block
Block
*
Block
...
@@ -754,12 +749,14 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
...
@@ -754,12 +749,14 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
vm
.
Endl
()
vm
.
Endl
()
if
vm
.
Hook
!=
nil
{
if
vm
.
Dbg
!=
nil
{
for
_
,
instrNo
:=
range
vm
.
BreakPoints
{
for
_
,
instrNo
:=
range
vm
.
Dbg
.
BreakPoints
()
{
if
pc
.
Cmp
(
big
.
NewInt
(
instrNo
))
==
0
||
vm
.
Stepping
{
if
pc
.
Cmp
(
big
.
NewInt
(
instrNo
))
==
0
{
vm
.
Stepping
=
true
if
!
vm
.
Dbg
.
BreakHook
(
prevStep
,
op
,
mem
,
stack
,
closure
.
Object
())
{
return
nil
,
nil
if
!
vm
.
Hook
(
prevStep
,
op
,
mem
,
stack
,
closure
.
Object
())
{
}
}
else
if
vm
.
Stepping
{
if
!
vm
.
Dbg
.
StepHook
(
prevStep
,
op
,
mem
,
stack
,
closure
.
Object
())
{
return
nil
,
nil
return
nil
,
nil
}
}
}
}
...
...
ethlog/loggers.go
View file @
4fb2905b
...
@@ -39,7 +39,7 @@ func (msg *logMessage) send(logger LogSystem) {
...
@@ -39,7 +39,7 @@ func (msg *logMessage) send(logger LogSystem) {
var
logMessages
chan
(
*
logMessage
)
var
logMessages
chan
(
*
logMessage
)
var
logSystems
[]
LogSystem
var
logSystems
[]
LogSystem
var
drained
=
true
var
quit
chan
bool
type
LogLevel
uint8
type
LogLevel
uint8
...
@@ -54,6 +54,7 @@ const (
...
@@ -54,6 +54,7 @@ const (
// log messages are dispatched to log writers
// log messages are dispatched to log writers
func
start
()
{
func
start
()
{
out
:
for
{
for
{
select
{
select
{
case
msg
:=
<-
logMessages
:
case
msg
:=
<-
logMessages
:
...
@@ -62,15 +63,23 @@ func start() {
...
@@ -62,15 +63,23 @@ func start() {
msg
.
send
(
logSystem
)
msg
.
send
(
logSystem
)
}
}
}
}
defaul
t
:
case
<-
qui
t
:
drained
=
true
break
out
}
}
}
}
}
}
// waits until log messages are drained (dispatched to log writers)
// waits until log messages are drained (dispatched to log writers)
func
Flush
()
{
func
Flush
()
{
for
!
drained
{
quit
<-
true
done
:
for
{
select
{
case
<-
logMessages
:
default
:
break
done
}
}
}
}
}
...
@@ -88,6 +97,7 @@ func AddLogSystem(logSystem LogSystem) {
...
@@ -88,6 +97,7 @@ func AddLogSystem(logSystem LogSystem) {
defer
mutex
.
Unlock
()
defer
mutex
.
Unlock
()
if
logSystems
==
nil
{
if
logSystems
==
nil
{
logMessages
=
make
(
chan
*
logMessage
)
logMessages
=
make
(
chan
*
logMessage
)
quit
=
make
(
chan
bool
)
go
start
()
go
start
()
}
}
logSystems
=
append
(
logSystems
,
logSystem
)
logSystems
=
append
(
logSystems
,
logSystem
)
...
@@ -96,7 +106,6 @@ func AddLogSystem(logSystem LogSystem) {
...
@@ -96,7 +106,6 @@ func AddLogSystem(logSystem LogSystem) {
func
(
logger
*
Logger
)
sendln
(
level
LogLevel
,
v
...
interface
{})
{
func
(
logger
*
Logger
)
sendln
(
level
LogLevel
,
v
...
interface
{})
{
if
logMessages
!=
nil
{
if
logMessages
!=
nil
{
msg
:=
newPrintlnLogMessage
(
level
,
logger
.
tag
,
v
...
)
msg
:=
newPrintlnLogMessage
(
level
,
logger
.
tag
,
v
...
)
drained
=
false
logMessages
<-
msg
logMessages
<-
msg
}
}
}
}
...
@@ -104,7 +113,6 @@ func (logger *Logger) sendln(level LogLevel, v ...interface{}) {
...
@@ -104,7 +113,6 @@ func (logger *Logger) sendln(level LogLevel, v ...interface{}) {
func
(
logger
*
Logger
)
sendf
(
level
LogLevel
,
format
string
,
v
...
interface
{})
{
func
(
logger
*
Logger
)
sendf
(
level
LogLevel
,
format
string
,
v
...
interface
{})
{
if
logMessages
!=
nil
{
if
logMessages
!=
nil
{
msg
:=
newPrintfLogMessage
(
level
,
logger
.
tag
,
format
,
v
...
)
msg
:=
newPrintfLogMessage
(
level
,
logger
.
tag
,
format
,
v
...
)
drained
=
false
logMessages
<-
msg
logMessages
<-
msg
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment