fix timeout issue

pull/5370/head
yann300 3 years ago
parent e380ad7fae
commit b75b83a7a1
  1. 11
      libs/remix-debug/src/debugger/solidityLocals.ts
  2. 13
      libs/remix-debug/src/debugger/solidityState.ts

@ -10,6 +10,7 @@ export class DebuggerSolidityLocals {
traceManager
tx
_sourceLocation
decodeTimeout
constructor (tx, _stepManager, _traceManager, _internalTreeCall) {
this.event = new EventManager()
@ -18,21 +19,21 @@ export class DebuggerSolidityLocals {
this.storageResolver = null
this.traceManager = _traceManager
this.tx = tx
this.decodeTimeout = null
}
init (sourceLocation) {
this._sourceLocation = sourceLocation
let decodeTimeout = null
if (!this.storageResolver) {
return this.event.trigger('solidityLocalsMessage', ['storage not ready'])
}
if (decodeTimeout) {
window.clearTimeout(decodeTimeout)
if (this.decodeTimeout) {
window.clearTimeout(this.decodeTimeout)
}
this.event.trigger('solidityLocalsUpdating')
decodeTimeout = setTimeout(() => {
this.decodeTimeout = setTimeout(() => {
this.decode(sourceLocation)
}, 500)
}, 1000)
}
decode (sourceLocation, cursor?) {

@ -1,3 +1,4 @@
import { timeStamp } from 'console'
import { EventManager } from '../eventManager'
import { decodeState } from '../solidity-decoder/stateDecoder'
import { StorageViewer } from '../storage/storageViewer'
@ -11,6 +12,7 @@ export class DebuggerSolidityState {
solidityProxy
stateVariablesByAddresses
tx
decodeTimeout
constructor (tx, _stepManager, _traceManager, _codeManager, _solidityProxy) {
this.event = new EventManager()
@ -21,10 +23,10 @@ export class DebuggerSolidityState {
this.solidityProxy = _solidityProxy
this.stateVariablesByAddresses = {}
this.tx = tx
this.decodeTimeout = null
}
init (index) {
let decodeTimeout = null
if (index < 0) {
return this.event.trigger('solidityStateMessage', ['invalid step index'])
}
@ -37,19 +39,18 @@ export class DebuggerSolidityState {
if (!this.storageResolver) {
return
}
if (decodeTimeout) {
window.clearTimeout(decodeTimeout)
if (this.decodeTimeout) {
window.clearTimeout(this.decodeTimeout)
}
this.event.trigger('solidityStateUpdating')
decodeTimeout = setTimeout(() => {
this.decodeTimeout = setTimeout(() => {
// necessary due to some states that can crash the debugger
try {
this.decode(index)
} catch (err) {
console.dir('====> error')
console.dir(err)
}
}, 500)
}, 1000)
}
reset () {

Loading…
Cancel
Save