Merge pull request #1190 from ethereum/debugerFix

Various Fix on Debugger
pull/5370/head
yann300 6 years ago committed by GitHub
commit 7c22fcf4f3
  1. 2
      remix-debug/src/debugger/VmDebugger.js
  2. 53
      remix-debug/src/debugger/debugger.js

@ -196,7 +196,7 @@ class VmDebuggerLogic {
self.event.trigger('newTrace', []) self.event.trigger('newTrace', [])
}) })
self.debugger.event.register('callTreeReady', function () { self.debugger.callTree.event.register('callTreeReady', function () {
if (self.debugger.callTree.reducedTrace.length) { if (self.debugger.callTree.reducedTrace.length) {
return self.event.trigger('newCallTree', []) return self.event.trigger('newCallTree', [])
} }

@ -69,34 +69,41 @@ Debugger.prototype.updateWeb3 = function (web3) {
} }
Debugger.prototype.debug = function (blockNumber, txNumber, tx, loadingCb) { Debugger.prototype.debug = function (blockNumber, txNumber, tx, loadingCb) {
const self = this
let web3 = this.debugger.web3 let web3 = this.debugger.web3
if (this.debugger.traceManager.isLoading) { return new Promise((resolve, reject) => {
return if (this.debugger.traceManager.isLoading) {
} return resolve()
}
if (tx) { if (tx) {
if (!tx.to) { if (!tx.to) {
tx.to = traceHelper.contractCreationToken('0') tx.to = traceHelper.contractCreationToken('0')
}
this.debugTx(tx, loadingCb)
return resolve()
} }
return self.debugTx(tx, loadingCb)
} try {
if (txNumber.indexOf('0x') !== -1) {
try { return web3.eth.getTransaction(txNumber, (_error, tx) => {
if (txNumber.indexOf('0x') !== -1) { if (_error) return reject(_error)
return web3.eth.getTransaction(txNumber, function (_error, result) { if (!tx) return reject('cannot find transaction ' + txNumber)
let tx = result this.debugTx(tx, loadingCb)
self.debugTx(tx, loadingCb) return resolve()
})
}
web3.eth.getTransactionFromBlock(blockNumber, txNumber, (_error, tx) => {
if (_error) return reject(_error)
if (!tx) return reject('cannot find transaction ' + blockNumber + ' ' + txNumber)
this.debugTx(tx, loadingCb)
return resolve()
}) })
} catch (e) {
console.error(e.message)
return reject(e.message)
} }
web3.eth.getTransactionFromBlock(blockNumber, txNumber, function (_error, result) { })
let tx = result
self.debugTx(tx, loadingCb)
})
} catch (e) {
console.error(e.message)
}
} }
Debugger.prototype.debugTx = function (tx, loadingCb) { Debugger.prototype.debugTx = function (tx, loadingCb) {
@ -115,7 +122,7 @@ Debugger.prototype.debugTx = function (tx, loadingCb) {
this.vmDebuggerLogic.start() this.vmDebuggerLogic.start()
this.step_manager.event.register('stepChanged', this, function (stepIndex) { this.step_manager.event.register('stepChanged', this, function (stepIndex) {
if (!stepIndex) { if (typeof stepIndex !== 'number' || stepIndex >= self.step_manager.traceLength) {
return self.event.trigger('endDebug') return self.event.trigger('endDebug')
} }

Loading…
Cancel
Save