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
685aebc7
Commit
685aebc7
authored
Jul 07, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop'
parents
0ae3bbc3
0360e60d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
12 deletions
+32
-12
debugger.go
ethereal/debugger.go
+32
-12
No files found.
ethereal/debugger.go
View file @
685aebc7
...
@@ -15,9 +15,8 @@ type DebuggerWindow struct {
...
@@ -15,9 +15,8 @@ type DebuggerWindow struct {
engine
*
qml
.
Engine
engine
*
qml
.
Engine
lib
*
UiLib
lib
*
UiLib
vm
*
ethchain
.
Vm
vm
*
ethchain
.
Vm
Db
*
Debugger
Db
*
Debugger
breakPoints
[]
int64
}
}
func
NewDebuggerWindow
(
lib
*
UiLib
)
*
DebuggerWindow
{
func
NewDebuggerWindow
(
lib
*
UiLib
)
*
DebuggerWindow
{
...
@@ -30,9 +29,11 @@ func NewDebuggerWindow(lib *UiLib) *DebuggerWindow {
...
@@ -30,9 +29,11 @@ func NewDebuggerWindow(lib *UiLib) *DebuggerWindow {
}
}
win
:=
component
.
CreateWindow
(
nil
)
win
:=
component
.
CreateWindow
(
nil
)
db
:=
&
Debugger
{
win
,
make
(
chan
bool
),
make
(
chan
bool
),
true
,
false
}
return
&
DebuggerWindow
{
engine
:
engine
,
win
:
win
,
lib
:
lib
,
Db
:
db
,
vm
:
&
ethchain
.
Vm
{}}
w
:=
&
DebuggerWindow
{
engine
:
engine
,
win
:
win
,
lib
:
lib
,
vm
:
&
ethchain
.
Vm
{}}
w
.
Db
=
NewDebugger
(
w
)
return
w
}
}
func
(
self
*
DebuggerWindow
)
Show
()
{
func
(
self
*
DebuggerWindow
)
Show
()
{
...
@@ -138,8 +139,7 @@ func (self *DebuggerWindow) Debug(valueStr, gasStr, gasPriceStr, scriptStr, data
...
@@ -138,8 +139,7 @@ func (self *DebuggerWindow) Debug(valueStr, gasStr, gasPriceStr, scriptStr, data
Value
:
ethutil
.
Big
(
valueStr
),
Value
:
ethutil
.
Big
(
valueStr
),
})
})
vm
.
Verbose
=
true
vm
.
Verbose
=
true
vm
.
Hook
=
self
.
Db
.
halting
vm
.
Dbg
=
self
.
Db
vm
.
BreakPoints
=
self
.
breakPoints
self
.
vm
=
vm
self
.
vm
=
vm
self
.
Db
.
done
=
false
self
.
Db
.
done
=
false
...
@@ -201,8 +201,7 @@ func (self *DebuggerWindow) ExecCommand(command string) {
...
@@ -201,8 +201,7 @@ func (self *DebuggerWindow) ExecCommand(command string) {
self
.
Logln
(
err
)
self
.
Logln
(
err
)
break
break
}
}
self
.
breakPoints
=
append
(
self
.
breakPoints
,
int64
(
lineNo
))
self
.
Db
.
breakPoints
=
append
(
self
.
Db
.
breakPoints
,
int64
(
lineNo
))
self
.
vm
.
BreakPoints
=
self
.
breakPoints
self
.
Logf
(
"break point set on instruction %d"
,
lineNo
)
self
.
Logf
(
"break point set on instruction %d"
,
lineNo
)
}
else
{
}
else
{
self
.
Logf
(
"'%s' requires line number"
,
cmd
[
0
])
self
.
Logf
(
"'%s' requires line number"
,
cmd
[
0
])
...
@@ -211,8 +210,7 @@ func (self *DebuggerWindow) ExecCommand(command string) {
...
@@ -211,8 +210,7 @@ func (self *DebuggerWindow) ExecCommand(command string) {
if
len
(
cmd
)
>
1
{
if
len
(
cmd
)
>
1
{
switch
cmd
[
1
]
{
switch
cmd
[
1
]
{
case
"break"
,
"bp"
:
case
"break"
,
"bp"
:
self
.
breakPoints
=
nil
self
.
Db
.
breakPoints
=
nil
self
.
vm
.
BreakPoints
=
nil
self
.
Logln
(
"Breakpoints cleared"
)
self
.
Logln
(
"Breakpoints cleared"
)
case
"log"
:
case
"log"
:
...
@@ -231,16 +229,38 @@ func (self *DebuggerWindow) ExecCommand(command string) {
...
@@ -231,16 +229,38 @@ func (self *DebuggerWindow) ExecCommand(command string) {
}
}
type
Debugger
struct
{
type
Debugger
struct
{
win
*
qml
.
Window
N
chan
bool
N
chan
bool
Q
chan
bool
Q
chan
bool
done
,
interrupt
bool
done
,
interrupt
bool
breakPoints
[]
int64
main
*
DebuggerWindow
win
*
qml
.
Window
}
func
NewDebugger
(
main
*
DebuggerWindow
)
*
Debugger
{
db
:=
&
Debugger
{
make
(
chan
bool
),
make
(
chan
bool
),
true
,
false
,
nil
,
main
,
main
.
win
}
return
db
}
}
type
storeVal
struct
{
type
storeVal
struct
{
Key
,
Value
string
Key
,
Value
string
}
}
func
(
self
*
Debugger
)
BreakHook
(
pc
int
,
op
ethchain
.
OpCode
,
mem
*
ethchain
.
Memory
,
stack
*
ethchain
.
Stack
,
stateObject
*
ethchain
.
StateObject
)
bool
{
self
.
main
.
Logln
(
"break on instr:"
,
pc
)
return
self
.
halting
(
pc
,
op
,
mem
,
stack
,
stateObject
)
}
func
(
self
*
Debugger
)
StepHook
(
pc
int
,
op
ethchain
.
OpCode
,
mem
*
ethchain
.
Memory
,
stack
*
ethchain
.
Stack
,
stateObject
*
ethchain
.
StateObject
)
bool
{
return
self
.
halting
(
pc
,
op
,
mem
,
stack
,
stateObject
)
}
func
(
self
*
Debugger
)
BreakPoints
()
[]
int64
{
return
self
.
breakPoints
}
func
(
d
*
Debugger
)
halting
(
pc
int
,
op
ethchain
.
OpCode
,
mem
*
ethchain
.
Memory
,
stack
*
ethchain
.
Stack
,
stateObject
*
ethchain
.
StateObject
)
bool
{
func
(
d
*
Debugger
)
halting
(
pc
int
,
op
ethchain
.
OpCode
,
mem
*
ethchain
.
Memory
,
stack
*
ethchain
.
Stack
,
stateObject
*
ethchain
.
StateObject
)
bool
{
d
.
win
.
Root
()
.
Call
(
"setInstruction"
,
pc
)
d
.
win
.
Root
()
.
Call
(
"setInstruction"
,
pc
)
d
.
win
.
Root
()
.
Call
(
"clearMem"
)
d
.
win
.
Root
()
.
Call
(
"clearMem"
)
...
...
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