parent
973907b825
commit
dc1b07bcea
@ -1,70 +0,0 @@ |
||||
'use strict' |
||||
var Ethdebugger = require('remix-debug').EthDebugger |
||||
var remixLib = require('remix-lib') |
||||
var EventManager = remixLib.EventManager |
||||
|
||||
function Debugger (options) { |
||||
var self = this |
||||
this.event = new EventManager() |
||||
|
||||
this.executionContext = options.executionContext |
||||
this.offsetToLineColumnConverter = options.offsetToLineColumnConverter |
||||
this.compiler = options.compiler |
||||
|
||||
this.debugger = new Ethdebugger( |
||||
{ |
||||
executionContext: this.executionContext, |
||||
compilationResult: () => { |
||||
var compilationResult = this.compiler.lastCompilationResult |
||||
if (compilationResult) { |
||||
return compilationResult.data |
||||
} |
||||
return null |
||||
} |
||||
}) |
||||
|
||||
this.breakPointManager = new remixLib.code.BreakpointManager(this.debugger, (sourceLocation) => { |
||||
return self.offsetToLineColumnConverter.offsetToLineColumn(sourceLocation, sourceLocation.file, this.compiler.lastCompilationResult.source.sources, this.compiler.lastCompilationResult.data.sources) |
||||
}, (step) => { |
||||
self.event.trigger('breakpointStep', [step]) |
||||
}) |
||||
|
||||
this.debugger.setBreakpointManager(this.breakPointManager) |
||||
|
||||
this.executionContext.event.register('contextChanged', this, function (context) { |
||||
// TODO: was already broken
|
||||
//self.switchProvider(context)
|
||||
}) |
||||
|
||||
this.debugger.event.register('newTraceLoaded', this, function () { |
||||
self.event.trigger('debuggerStatus', [true]) |
||||
}) |
||||
|
||||
this.debugger.event.register('traceUnloaded', this, function () { |
||||
self.event.trigger('debuggerStatus', [false]) |
||||
}) |
||||
|
||||
this.debugger.addProvider('vm', this.executionContext.vm()) |
||||
this.debugger.addProvider('injected', this.executionContext.internalWeb3()) |
||||
this.debugger.addProvider('web3', this.executionContext.internalWeb3()) |
||||
this.debugger.switchProvider(this.executionContext.getProvider()) |
||||
} |
||||
|
||||
Debugger.prototype.registerAndHighlightCodeItem = function (index) { |
||||
const self = this |
||||
// register selected code item, highlight the corresponding source location
|
||||
if (!self.compiler.lastCompilationResult) return |
||||
self.debugger.traceManager.getCurrentCalledAddressAt(index, (error, address) => { |
||||
if (error) return console.log(error) |
||||
self.debugger.callTree.sourceLocationTracker.getSourceLocationFromVMTraceIndex(address, index, self.compiler.lastCompilationResult.data.contracts, function (error, rawLocation) { |
||||
if (!error && self.compiler.lastCompilationResult && self.compiler.lastCompilationResult.data) { |
||||
var lineColumnPos = self.offsetToLineColumnConverter.offsetToLineColumn(rawLocation, rawLocation.file, self.compiler.lastCompilationResult.source.sources) |
||||
self.event.trigger('newSourceLocation', [lineColumnPos, rawLocation]) |
||||
} else { |
||||
self.event.trigger('newSourceLocation', [null]) |
||||
} |
||||
}) |
||||
}) |
||||
} |
||||
|
||||
module.exports = Debugger |
Loading…
Reference in new issue