I'm looking for a tool which could provide me the following features:

  • Feature to check how value/reference types fit into storage/memory slots. The doc says "declaring your storage variables in the order of uint128, uint128, uint256 instead of uint128, uint256, uint128, as the former will only take up two slots of storage whereas the latter will take up three." I would like to be able to check my cases using a debugger.

  • Feature to check whether value/reference variable is stored in memory or in storage. There are a lot of cases when variables could either being copied or passed by reference. It seems not all of them is covered by docs.

2 Answers 2


If I am understanding this correctly , you do need a way to figure out about how evm opcodes are used, stored in stack or something similar.

Couple of options:


If you download the geth source code from github, compile and run you should be able to attach most debuggers.

As geth is written in Go I would look at a tool for go debugging. That way you can open the project run and debug the source code, set breakpoints all over the code base that will help you to inspect memory.

Here is a resource to help you with debugging Go within VS Code

You could also try DELVE, a Go debugger.

  • Thank you for the suggestion, Lismore! But I'm talking about Solidity. Sorry, that wasn't clear in the question description. I'm looking for a solution which won't led me to use so low level debugging as at go/rust/other implementations. Jan 9, 2018 at 12:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.