Skip to Content
Courses

Debugging Smart Contracts

If you come from a well-groomed development environment, such as .Net, Java or pretty much anything, you know how important it is to be able to step-by-step debug code.

In Solidity you loose almost all of the luxury you’re used to from other languages. But there are still some options available.

Debugging Advanced

If you are looking into a more advanced way to debugging smart contracts, then wait until we use Truffle, or directly head over to the Truffle Debugging  section on their website.

Smart Contract

Add the following Smart Contract to Remix:

//SPDX-License-Identifier: MIT pragma solidity 0.8.13; contract DebuggerExample { uint public myUint; function setMyUint(uint _myuint) public { myUint = _myuint; } }

And deploy it to the JavaScript VM:

ethereum-blockchain-developer-image

Interact with the Smart Contract

Now lets set the Uint to ā€œ5ā€ and hit the little ā€œDebugā€ button in the Transaction window. You were probably wondering already what that debug button is there for anyways…

ethereum-blockchain-developer-image

It will open up the Remix Debugger, which looks something like this:

ethereum-blockchain-developer-image

You can run through the transaction with the horizontal scroll bar (1), or use the step-by-step button (2). Also observe the actual opcodes that are executed during each step (3):

ethereum-blockchain-developer-image

Last updated on