diff --git a/libs/remix-debug/src/solidity-decoder/internalCallTree.js b/libs/remix-debug/src/solidity-decoder/internalCallTree.js index a1c9da1969..7a14e0fc70 100644 --- a/libs/remix-debug/src/solidity-decoder/internalCallTree.js +++ b/libs/remix-debug/src/solidity-decoder/internalCallTree.js @@ -126,18 +126,19 @@ class InternalCallTree { extractSourceLocation (step) { return new Promise((resolve, reject) => { - try { - const address = this.traceManager.getCurrentCalledAddressAt(step) - try { - this.sourceLocationTracker.getSourceLocationFromVMTraceIndex(address, step, this.solidityProxy.contracts).then(resolve).catch((error) => { - return reject('InternalCallTree - Cannot retrieve sourcelocation for step ' + step + ' ' + error) - }) - } catch (error) { + this.traceManager.getCurrentCalledAddressAt(step, (error, address) => { + if (!error) { + try { + this.sourceLocationTracker.getSourceLocationFromVMTraceIndex(address, step, this.solidityProxy.contracts).then(resolve).catch((error) => { + return reject('InternalCallTree - Cannot retrieve sourcelocation for step ' + step + ' ' + error) + }) + } catch (error) { + return reject('InternalCallTree - Cannot retrieve address for step ' + step + ' ' + error) + } + } else { return reject('InternalCallTree - Cannot retrieve address for step ' + step + ' ' + error) } - } catch (error) { - return reject('InternalCallTree - Cannot retrieve address for step ' + step + ' ' + error) - } + }) }) }