Truffle: Debugger seems to be broken on 4.1.6

Created on 18 Apr 2018  路  11Comments  路  Source: trufflesuite/truffle

  • [X] I've asked for help in the Truffle Gitter before filing this issue.

Issue

Debugger is outputting an error when trying to debug a txn on latest truffle (4.1.6)

Steps to Reproduce

Installed latest truffle, unboxed metacoin, deployed to ropsten, did a sendCoin successfully, tried to debug that sendCoin txn and getting the error below: TypeError: Cannot read property 'contractName' of undefined

Expected Behavior

Truffle should debug the txn and let me step through it

Actual Results

h4ckb00k-new-2:Metacoin chris$ truffle console --network ropsten
truffle(ropsten)> debug 0xcc297cc9e06bd3d2ad041442c3e396397c38bc842de9f82e064d6d955de88ce4
Compiling ./contracts/ConvertLib.sol...
Compiling ./contracts/MetaCoin.sol...
Compiling ./contracts/Migrations.sol...

Compilation warnings encountered:

/Users/chris/Documents/WorkStuff/Deconet/Blockchain/Metacoin/contracts/MetaCoin.sol:23:3: Warning: Invoking events without "emit" prefix is deprecated.
        Transfer(msg.sender, receiver, amount);
        ^------------------------------------^


Gathering transaction data...

TypeError: Cannot read property 'contractName' of undefined
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/~/truffle-debugger/dist/debugger.js:6658:1
    at Array.map (<anonymous>)
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/~/truffle-debugger/dist/debugger.js:6652:48
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/reselect/lib/index.js:76:1
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/reselect/lib/index.js:36:1
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/reselect/lib/index.js:90:1
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/reselect/lib/index.js:36:1
    at Session.view (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/~/truffle-debugger/dist/debugger.js:2673:1)
    at printAddressesAffected (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/lib/commands/debug.js:102:1)
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/lib/commands/debug.js:442:1
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:160:7)
truffle(ropsten)> version
Truffle v4.1.6 (core: 4.1.6)
Solidity v0.4.21 (solc-js)
truffle(ropsten)> 

Environment

Metacoin is deployed at: https://ropsten.etherscan.io/address/0x3f0e61774c4a4f0e0b50649cb289c3cd2a599c7e

This is the txn I was trying to debug: https://ropsten.etherscan.io/tx/0xcc297cc9e06bd3d2ad041442c3e396397c38bc842de9f82e064d6d955de88ce4

  • Operating System: OS X 10.12.6
  • Ethereum client: geth
  • Truffle version (truffle version): v4.1.6
  • node version (node --version): v9.3.0
  • npm version (npm --version): 5.7.1

Most helpful comment

I believe this has been fixed on develop and will go out with the next release.

In the meantime, I've just published a nightly release with this change. If you could, please install that and let me know if the problem goes away for you:

npm install -g [email protected]
darq-truffle debug 0x...

Thanks!

All 11 comments

@glitch003 just in case this applies, did you deploy to Ropsten before upgrading Truffle? If you look at the JSON artifact files for deployedBytecode (or deployedBinary, I forget which), does it match what's deployed on Ropsten?

@gnidan I am fairly certain that deployed after updating truffle, but, the bytecode indeed doesn't match. In fact, the deployedBytecode in the JSON artifact has a weird ascii string in it (ConvertLib).

This is the deployedBytecode from the JSON artifact files, and there's also a link to the actual deployed bytecode on etherscan at the bottom:

0x606060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637bd703e81461005c57806390b98a11146100a9578063f8b2cb4f14610103575b600080fd5b341561006757600080fd5b610093600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610150565b6040518082815260200191505060405180910390f35b34156100b457600080fd5b6100e9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506101eb565b604051808215151515815260200191505060405180910390f35b341561010e57600080fd5b61013a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610344565b6040518082815260200191505060405180910390f35b600073__ConvertLib____________________________6396e4ee3d61017584610344565b60026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15156101cd57600080fd5b5af415156101da57600080fd5b505050604051805190509050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561023c576000905061033e565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509190505600a165627a7a723058202a6d475129b97c969eb3ad3ce76671189080115b03564d4ec1e1dc9831d979710029

And you can view the actual deployed bytecode here https://ropsten.etherscan.io/address/0x3f0e61774c4a4f0e0b50649cb289c3cd2a599c7e#code

Hm @glitch003 these actually look the same. That __ConvertLib____________ bit gets replaced at runtime, so you should be able to ignore that.

Not sure what's going on, but we should have another Truffle release out in the next few days that might fix the issue.

@gnidan Okey doke, will wait and try to reproduce on next release. Thanks!

@glitch003 try now with Truffle v4.1.7

@gnidan same thing, unfortunately :(

h4ckb00k-new-2:Metacoin chris$ truffle debug 0x258f81831b786afe516045cac4bcb7ada5b805b9c44d0b46df7c4b5bf3ed0f77 --network ropsten
Compiling ./contracts/ConvertLib.sol...
Compiling ./contracts/MetaCoin.sol...
Compiling ./contracts/Migrations.sol...

Compilation warnings encountered:

/Users/chris/Documents/WorkStuff/Deconet/Blockchain/Metacoin/contracts/MetaCoin.sol:15:2: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function MetaCoin() public {
 ^ (Relevant source part starts here and spans across multiple lines).
,/Users/chris/Documents/WorkStuff/Deconet/Blockchain/Metacoin/contracts/Migrations.sol:11:3: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
  function Migrations() public {
  ^ (Relevant source part starts here and spans across multiple lines).
,/Users/chris/Documents/WorkStuff/Deconet/Blockchain/Metacoin/contracts/MetaCoin.sol:23:3: Warning: Invoking events without "emit" prefix is deprecated.
        Transfer(msg.sender, receiver, amount);
        ^------------------------------------^


Gathering transaction data...

TypeError: Cannot read property 'contractName' of undefined
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/~/truffle-debugger/dist/debugger.js:6717:1
    at Array.map (<anonymous>)
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/~/truffle-debugger/dist/debugger.js:6711:48
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/reselect/lib/index.js:76:1
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/reselect/lib/index.js:36:1
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/reselect/lib/index.js:90:1
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/reselect/lib/index.js:36:1
    at Session.view (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/~/truffle-debugger/dist/debugger.js:2770:1)
    at printAddressesAffected (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/lib/commands/debug.js:102:1)
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/webpack:/~/truffle-core/lib/commands/debug.js:442:1
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:160:7)
h4ckb00k-new-2:Metacoin chris$ truffle version
Truffle v4.1.7 (core: 4.1.7)
Solidity v0.4.23 (solc-js)
h4ckb00k-new-2:Metacoin chris$ 

I did npm uninstall -g truffle then npm install -g truffle then I redeployed to the below etherscan link address with truffle migrate --reset --network ropsten

https://ropsten.etherscan.io/address/0xd8489b8b418b7cae57b144c31ef7a0d6fdb6a217#code

And this is the "deployedBytecode": "0x606060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637bd703e81461005c57806390b98a11146100a9578063f8b2cb4f14610103575b600080fd5b341561006757600080fd5b610093600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610150565b6040518082815260200191505060405180910390f35b34156100b457600080fd5b6100e9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506101eb565b604051808215151515815260200191505060405180910390f35b341561010e57600080fd5b61013a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610344565b6040518082815260200191505060405180910390f35b600073__ConvertLib____________________________6396e4ee3d61017584610344565b60026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15156101cd57600080fd5b5af415156101da57600080fd5b505050604051805190509050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561023c576000905061033e565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509190505600a165627a7a723058202a6d475129b97c969eb3ad3ce76671189080115b03564d4ec1e1dc9831d979710029"

I have the same problem using [email protected] and Ganache for development.

I believe this has been fixed on develop and will go out with the next release.

In the meantime, I've just published a nightly release with this change. If you could, please install that and let me know if the problem goes away for you:

npm install -g [email protected]
darq-truffle debug 0x...

Thanks!

Thanks for the update @gnidan and all your hard work on truffle! Unfortunately, I'm now getting a new error with [email protected]

h4ckb00k-new:Metacoin chris$ darq-truffle debug 0xc6e23c483f002b9ce4479a5539ec1f8e453ddf227bbd83b04c5d0f7ea2434dcf --network ropsten
Compiling ./contracts/ConvertLib.sol...
Compiling ./contracts/MetaCoin.sol...
Compiling ./contracts/Migrations.sol...

Compilation warnings encountered:

/Users/chris/Documents/WorkStuff/Deconet/Blockchain/Metacoin/contracts/MetaCoin.sol:15:2: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
    function MetaCoin() public {
 ^ (Relevant source part starts here and spans across multiple lines).
,/Users/chris/Documents/WorkStuff/Deconet/Blockchain/Metacoin/contracts/Migrations.sol:11:3: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
  function Migrations() public {
  ^ (Relevant source part starts here and spans across multiple lines).
,/Users/chris/Documents/WorkStuff/Deconet/Blockchain/Metacoin/contracts/MetaCoin.sol:23:3: Warning: Invoking events without "emit" prefix is deprecated.
        Transfer(msg.sender, receiver, amount);
        ^------------------------------------^


Gathering transaction data...

redux-saga error: uncaught at session.saga
at session.saga 
 at recordInstance 
 TypeError: Cannot read property 'context' of null
    at Object.addInstance$ (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/dist/debugger.js:5392:1)
    at tryCatch (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/regenerator-runtime/runtime.js:62:15)
    at Generator.invoke [as _invoke] (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/regenerator-runtime/runtime.js:296:1)
    at Generator.prototype.(anonymous function) [as next] (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/regenerator-runtime/runtime.js:114:1)
    at tryCatch (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/regenerator-runtime/runtime.js:62:15)
    at maybeInvokeDelegate (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/regenerator-runtime/runtime.js:358:1)
    at Generator.invoke [as _invoke] (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/regenerator-runtime/runtime.js:270:1)
    at Generator.prototype.(anonymous function) [as next] (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/regenerator-runtime/runtime.js:114:1)
    at next (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:311:1)
    at currCb (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:388:1)
    at runSelectEffect (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:699:1)
    at runEffect (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:435:1)
    at next (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:315:1)
    at proc (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:270:1)
    at resolveIterator (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:456:1)
    at runCallEffect (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:517:1)
    at runEffect (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:435:1)
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:644:1
    at Array.forEach (<anonymous>)
    at runAllEffect (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:643:1)
    at runEffect (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:435:1)
    at next (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:315:1)
    at currCb (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:388:1)
    at checkEffectEnd (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:612:1)
    at chCbAtKey (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:627:1)
    at Object.currCb [as cb] (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:388:1)
    at /Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:358:1
    at Array.forEach (<anonymous>)
    at end (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:357:1)
    at Object.task.cont (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:99:1)
    at next (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:321:1)
    at currCb (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:388:1)
    at takeCb (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/proc.js:466:1)
    at Object.put (/Users/chris/.nvm/versions/node/v9.3.0/lib/node_modules/darq-truffle/build/webpack:/dependencies/truffle-debugger/~/redux-saga/es/internal/channel.js:73:1)

Here's my whole console session including the contract deploy and making the txn that I'm trying to debug: https://gist.github.com/glitch003/0e90a4ead0f0dac7797b5a6169b7b8e5

@glitch003 can you try adding --compile-all to your migrate command and let me know if that helps:

darq-truffle migrate --network ropsten --reset --compile-all

I suspect there might be a problem with your artifacts being out of date? Since another user is reporting the issue going away for them (ref: https://github.com/trufflesuite/truffle-debugger/issues/64). Let me know if that doesn't solve it!

@gnidan it worked! Hurray! Thanks so much for following up!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

arunmitteam picture arunmitteam  路  3Comments

ferittuncer picture ferittuncer  路  3Comments

ysfAskri picture ysfAskri  路  4Comments

mezrin picture mezrin  路  3Comments

Katsu1991 picture Katsu1991  路  3Comments