Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
e309ea75
Commit
e309ea75
authored
Sep 07, 2018
by
Iuri Matias
Committed by
yann300
Nov 13, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move step manager debugger class to its own file
parent
8073213d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
169 additions
and
171 deletions
+169
-171
debuggerUI.js
src/app/debugger/debuggerUI.js
+4
-2
StepManager.js
src/app/debugger/debuggerUI/StepManager.js
+2
-169
stepManager.js
src/app/debugger/stepManager.js
+163
-0
No files found.
src/app/debugger/debuggerUI.js
View file @
e309ea75
...
@@ -2,7 +2,8 @@ var OldEthdebuggerUI = require('./remix-debugger/src/ui/EthdebuggerUI')
...
@@ -2,7 +2,8 @@ var OldEthdebuggerUI = require('./remix-debugger/src/ui/EthdebuggerUI')
var
Debugger
=
require
(
'../debugger/debugger'
)
var
Debugger
=
require
(
'../debugger/debugger'
)
var
SourceHighlighter
=
require
(
'../editor/sourceHighlighter'
)
var
SourceHighlighter
=
require
(
'../editor/sourceHighlighter'
)
var
TxBrowser
=
require
(
'./debuggerUI/TxBrowser'
)
var
TxBrowser
=
require
(
'./debuggerUI/TxBrowser'
)
var
StepManager
=
require
(
'./debuggerUI/StepManager'
)
var
StepManagerUI
=
require
(
'./debuggerUI/StepManager'
)
var
StepManager
=
require
(
'./stepManager'
)
var
remixLib
=
require
(
'remix-lib'
)
var
remixLib
=
require
(
'remix-lib'
)
var
executionContext
=
remixLib
.
execution
.
executionContext
var
executionContext
=
remixLib
.
execution
.
executionContext
var
traceHelper
=
remixLib
.
helpers
.
trace
var
traceHelper
=
remixLib
.
helpers
.
trace
...
@@ -104,7 +105,8 @@ class DebuggerUI {
...
@@ -104,7 +105,8 @@ class DebuggerUI {
let
shouldOpenDebugger
=
this
.
debugger_ui
.
startDebugging
(
blockNumber
,
txNumber
,
tx
)
let
shouldOpenDebugger
=
this
.
debugger_ui
.
startDebugging
(
blockNumber
,
txNumber
,
tx
)
if
(
!
shouldOpenDebugger
)
return
if
(
!
shouldOpenDebugger
)
return
this
.
stepManager
=
new
StepManager
(
this
.
debugger_ui
,
this
.
transactionDebugger
.
debugger
.
traceManager
)
this
.
transactionDebugger
.
step_manager
=
new
StepManager
(
this
.
debugger_ui
,
this
.
transactionDebugger
.
debugger
.
traceManager
)
this
.
stepManager
=
new
StepManagerUI
(
this
.
transactionDebugger
)
this
.
stepManager
.
event
.
register
(
'stepChanged'
,
this
,
function
(
stepIndex
)
{
this
.
stepManager
.
event
.
register
(
'stepChanged'
,
this
,
function
(
stepIndex
)
{
self
.
debugger_ui
.
stepChanged
(
stepIndex
)
self
.
debugger_ui
.
stepChanged
(
stepIndex
)
})
})
...
...
src/app/debugger/debuggerUI/StepManager.js
View file @
e309ea75
'use strict'
var
remixLib
=
require
(
'remix-lib'
)
var
remixLib
=
require
(
'remix-lib'
)
var
EventManager
=
remixLib
.
EventManager
var
EventManager
=
remixLib
.
EventManager
var
yo
=
require
(
'yo-yo'
)
var
yo
=
require
(
'yo-yo'
)
...
@@ -7,174 +5,9 @@ var yo = require('yo-yo')
...
@@ -7,174 +5,9 @@ var yo = require('yo-yo')
var
ButtonNavigator
=
require
(
'./ButtonNavigator'
)
var
ButtonNavigator
=
require
(
'./ButtonNavigator'
)
var
Slider
=
require
(
'./Slider'
)
var
Slider
=
require
(
'./Slider'
)
class
DebuggerStepManager
{
function
StepManager
(
_debugger
)
{
constructor
(
_parent
,
_traceManager
)
{
this
.
event
=
new
EventManager
()
this
.
_parent
=
_parent
this
.
parent
=
_parent
.
debugger
this
.
traceManager
=
_traceManager
this
.
currentStepIndex
=
0
this
.
traceLength
=
0
this
.
revertionPoint
=
null
this
.
listenToEvents
()
}
listenToEvents
()
{
const
self
=
this
this
.
parent
.
event
.
register
(
'newTraceLoaded'
,
this
,
function
()
{
self
.
traceManager
.
getLength
(
function
(
error
,
newLength
)
{
if
(
error
)
{
return
console
.
log
(
error
)
}
if
(
self
.
traceLength
!==
newLength
)
{
self
.
event
.
trigger
(
'traceLengthChanged'
,
[
newLength
])
self
.
traceLength
=
newLength
}
self
.
jumpTo
(
0
)
})
})
this
.
parent
.
callTree
.
event
.
register
(
'callTreeReady'
,
()
=>
{
if
(
self
.
parent
.
callTree
.
functionCallStack
.
length
)
{
self
.
jumpTo
(
self
.
parent
.
callTree
.
functionCallStack
[
0
])
}
})
this
.
_parent
.
event
.
register
(
'indexChanged'
,
this
,
(
index
)
=>
{
if
(
index
<
0
)
return
if
(
self
.
_parent
.
currentStepIndex
!==
index
)
return
self
.
traceManager
.
buildCallPath
(
index
,
(
error
,
callsPath
)
=>
{
if
(
error
)
{
console
.
log
(
error
)
return
self
.
event
.
trigger
(
'revertWarning'
,
[
''
])
// if (self.buttonNavigator) {
// self.buttonNavigator.resetWarning('')
// }
// return
}
self
.
currentCall
=
callsPath
[
callsPath
.
length
-
1
]
if
(
self
.
currentCall
.
reverted
)
{
let
revertedReason
=
self
.
currentCall
.
outofgas
?
'outofgas'
:
''
self
.
revertionPoint
=
self
.
currentCall
.
return
return
self
.
event
.
trigger
(
'revertWarning'
,
[
revertedReason
])
// if (self.buttonNavigator) {
// self.buttonNavigator.resetWarning(revertedReason)
// }
// return
}
for
(
var
k
=
callsPath
.
length
-
2
;
k
>=
0
;
k
--
)
{
var
parent
=
callsPath
[
k
]
if
(
!
parent
.
reverted
)
continue
self
.
revertionPoint
=
parent
.
return
self
.
event
.
trigger
(
'revertWarning'
,
[
'parenthasthrown'
])
// if (self.buttonNavigator) {
// self.buttonNavigator.resetWarning('parenthasthrown')
// }
}
self
.
event
.
trigger
(
'revertWarning'
,
[
''
])
// if (self.buttonNavigator) {
// self.buttonNavigator.resetWarning('')
// }
})
})
}
triggerStepChanged
(
step
)
{
const
self
=
this
this
.
traceManager
.
getLength
(
function
(
error
,
length
)
{
let
stepState
=
'valid'
if
(
error
)
{
stepState
=
'invalid'
}
else
if
(
step
<=
0
)
{
stepState
=
'initial'
}
else
if
(
step
>=
length
-
1
)
{
stepState
=
'end'
}
let
jumpOutDisabled
=
(
step
===
self
.
traceManager
.
findStepOut
(
step
))
self
.
event
.
trigger
(
'stepChanged'
,
[
step
,
stepState
,
jumpOutDisabled
])
})
}
stepIntoBack
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
currentStepIndex
-
1
this
.
currentStepIndex
=
step
if
(
!
this
.
traceManager
.
inRange
(
step
))
{
return
}
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
stepIntoForward
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
currentStepIndex
+
1
this
.
currentStepIndex
=
step
if
(
!
this
.
traceManager
.
inRange
(
step
))
{
return
}
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
stepOverBack
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
traceManager
.
findStepOverBack
(
this
.
currentStepIndex
)
this
.
currentStepIndex
=
step
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
stepOverForward
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
traceManager
.
findStepOverForward
(
this
.
currentStepIndex
)
this
.
currentStepIndex
=
step
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
jumpOut
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
traceManager
.
findStepOut
(
this
.
currentStepIndex
)
this
.
currentStepIndex
=
step
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
jumpTo
(
step
)
{
if
(
!
this
.
traceManager
.
inRange
(
step
))
return
this
.
currentStepIndex
=
step
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
jumpToException
()
{
this
.
jumpTo
(
this
.
revertionPoint
)
}
jumpNextBreakpoint
()
{
// TODO: this is the same currentStepIndex var but currently coupled all the way up to EthDebuggerUI
// the trigger in updateStep is updating it in EthDebuggerUI
// the refactor should remove it
this
.
parent
.
breakpointManager
.
jumpNextBreakpoint
(
this
.
_parent
.
currentStepIndex
,
true
)
}
jumpPreviousBreakpoint
()
{
this
.
parent
.
breakpointManager
.
jumpPreviousBreakpoint
(
this
.
_parent
.
currentStepIndex
,
true
)
}
}
function
StepManager
(
_parent
,
_traceManager
)
{
this
.
event
=
new
EventManager
()
this
.
event
=
new
EventManager
()
this
.
_parent
=
_parent
this
.
step_manager
=
_debugger
.
step_manager
this
.
parent
=
_parent
.
debugger
this
.
traceManager
=
_traceManager
this
.
revertionPoint
=
null
this
.
step_manager
=
new
DebuggerStepManager
(
_parent
,
_traceManager
)
this
.
startSlider
()
this
.
startSlider
()
this
.
startButtonNavigator
()
this
.
startButtonNavigator
()
}
}
...
...
src/app/debugger/stepManager.js
0 → 100644
View file @
e309ea75
var
remixLib
=
require
(
'remix-lib'
)
var
EventManager
=
remixLib
.
EventManager
class
DebuggerStepManager
{
constructor
(
_parent
,
_traceManager
)
{
this
.
event
=
new
EventManager
()
this
.
_parent
=
_parent
this
.
parent
=
_parent
.
debugger
this
.
traceManager
=
_traceManager
this
.
currentStepIndex
=
0
this
.
traceLength
=
0
this
.
revertionPoint
=
null
this
.
listenToEvents
()
}
listenToEvents
()
{
const
self
=
this
this
.
parent
.
event
.
register
(
'newTraceLoaded'
,
this
,
function
()
{
self
.
traceManager
.
getLength
(
function
(
error
,
newLength
)
{
if
(
error
)
{
return
console
.
log
(
error
)
}
if
(
self
.
traceLength
!==
newLength
)
{
self
.
event
.
trigger
(
'traceLengthChanged'
,
[
newLength
])
self
.
traceLength
=
newLength
}
self
.
jumpTo
(
0
)
})
})
this
.
parent
.
callTree
.
event
.
register
(
'callTreeReady'
,
()
=>
{
if
(
self
.
parent
.
callTree
.
functionCallStack
.
length
)
{
self
.
jumpTo
(
self
.
parent
.
callTree
.
functionCallStack
[
0
])
}
})
this
.
_parent
.
event
.
register
(
'indexChanged'
,
this
,
(
index
)
=>
{
if
(
index
<
0
)
return
if
(
self
.
_parent
.
currentStepIndex
!==
index
)
return
self
.
traceManager
.
buildCallPath
(
index
,
(
error
,
callsPath
)
=>
{
if
(
error
)
{
console
.
log
(
error
)
return
self
.
event
.
trigger
(
'revertWarning'
,
[
''
])
// if (self.buttonNavigator) {
// self.buttonNavigator.resetWarning('')
// }
// return
}
self
.
currentCall
=
callsPath
[
callsPath
.
length
-
1
]
if
(
self
.
currentCall
.
reverted
)
{
let
revertedReason
=
self
.
currentCall
.
outofgas
?
'outofgas'
:
''
self
.
revertionPoint
=
self
.
currentCall
.
return
return
self
.
event
.
trigger
(
'revertWarning'
,
[
revertedReason
])
// if (self.buttonNavigator) {
// self.buttonNavigator.resetWarning(revertedReason)
// }
// return
}
for
(
var
k
=
callsPath
.
length
-
2
;
k
>=
0
;
k
--
)
{
var
parent
=
callsPath
[
k
]
if
(
!
parent
.
reverted
)
continue
self
.
revertionPoint
=
parent
.
return
self
.
event
.
trigger
(
'revertWarning'
,
[
'parenthasthrown'
])
// if (self.buttonNavigator) {
// self.buttonNavigator.resetWarning('parenthasthrown')
// }
}
self
.
event
.
trigger
(
'revertWarning'
,
[
''
])
// if (self.buttonNavigator) {
// self.buttonNavigator.resetWarning('')
// }
})
})
}
triggerStepChanged
(
step
)
{
const
self
=
this
this
.
traceManager
.
getLength
(
function
(
error
,
length
)
{
let
stepState
=
'valid'
if
(
error
)
{
stepState
=
'invalid'
}
else
if
(
step
<=
0
)
{
stepState
=
'initial'
}
else
if
(
step
>=
length
-
1
)
{
stepState
=
'end'
}
let
jumpOutDisabled
=
(
step
===
self
.
traceManager
.
findStepOut
(
step
))
self
.
event
.
trigger
(
'stepChanged'
,
[
step
,
stepState
,
jumpOutDisabled
])
})
}
stepIntoBack
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
currentStepIndex
-
1
this
.
currentStepIndex
=
step
if
(
!
this
.
traceManager
.
inRange
(
step
))
{
return
}
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
stepIntoForward
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
currentStepIndex
+
1
this
.
currentStepIndex
=
step
if
(
!
this
.
traceManager
.
inRange
(
step
))
{
return
}
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
stepOverBack
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
traceManager
.
findStepOverBack
(
this
.
currentStepIndex
)
this
.
currentStepIndex
=
step
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
stepOverForward
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
traceManager
.
findStepOverForward
(
this
.
currentStepIndex
)
this
.
currentStepIndex
=
step
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
jumpOut
()
{
if
(
!
this
.
traceManager
.
isLoaded
())
return
var
step
=
this
.
traceManager
.
findStepOut
(
this
.
currentStepIndex
)
this
.
currentStepIndex
=
step
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
jumpTo
(
step
)
{
if
(
!
this
.
traceManager
.
inRange
(
step
))
return
this
.
currentStepIndex
=
step
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
jumpToException
()
{
this
.
jumpTo
(
this
.
revertionPoint
)
}
jumpNextBreakpoint
()
{
// TODO: this is the same currentStepIndex var but currently coupled all the way up to EthDebuggerUI
// the trigger in updateStep is updating it in EthDebuggerUI
// the refactor should remove it
this
.
parent
.
breakpointManager
.
jumpNextBreakpoint
(
this
.
_parent
.
currentStepIndex
,
true
)
}
jumpPreviousBreakpoint
()
{
this
.
parent
.
breakpointManager
.
jumpPreviousBreakpoint
(
this
.
_parent
.
currentStepIndex
,
true
)
}
}
module
.
exports
=
DebuggerStepManager
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