ChainIDE-English
  • 1. ChainIDE Introduction
  • 2. ChainIDE Modules
    • 2.1. File System
    • 2.2. Editor
    • 2.3. File Preview
    • 2.4. Logger
    • 2.5. Compile
    • 2.6. Deployment and Interaction
    • 2.7. Plug-in System Module
      • 2.7.1 ChainIDE Debugger
      • 2.7.2. ChainIDE Flattener Plugin
      • 2.7.3. ChainIDE Scan Verifier
    • 2.8. Functions at Bottom Part of ChainIDE
  • 3. ChainIDE - Loading Your Work
  • 4. ChainIDE - Saving Your Work
  • 5. ChainIDE - Port Forwarding
  • ChainIDE
    • 1. Ethereum IDE
      • 1. Ethereum IDE Environment Configuration
      • 2. How to Use Ethereum IDE?
      • 3. Using Hardhat
      • 4. Using Ganache v7
      • 5. Using Truffle
    • 2. BNB Chain IDE
      • 1. BNB Chain IDE Environment Configuration
      • 2. How to Use BNB Chain IDE
      • 3. Using Hardhat
      • 4. Using Ganache v7
      • 5. Using Truffle
    • 3. Conflux IDE
      • 1. Conflux IDE Environment Configuration
      • 2. How to Use Conflux IDE
      • 3. Using Hardhat
      • 4. Using Ganache v7
      • 5. Using Truffle
      • 5. Using Conflux-Truffle
    • 4. Internet Computer IDE
      • 1. How to Use Internet Computer IDE
    • 5. Nervos IDE
      • 1. Nervos IDE Environment Configuration
      • 2. How to use Nervos IDE
      • 3. Using Hardhat
      • 4. Using Ganache v7
    • 6. Polygon IDE
      • 1. Polygon IDE Environment Configuration
      • 2. How to use Polygon IDE
      • 3. Using Hardhat
      • 4. Using Ganache v7
      • 5. Using Truffle
    • 7. Flow IDE
      • Learn how to use Flow IDE to develop dApps
    • 8. FISCO BCOS IDE
      • 1. FISCO BCOS Environment Configuration
      • 2. How to use FISCO BCOS IDE
    • 9. Sui IDE
      • 1. Sui Environment Configuration
      • 2. How to use Sui IDE
    • 10. Aptos IDE
      • 1. Aptos IDE Usage Process
      • 2. How to use Aptos IDE
    • 11. XDC IDE
      • 1. XDC IDE Environment Configuration
      • 2. How to Use XDC IDE
      • 3. Using Hardhat
      • 4. Using Ganache v7
      • 5. Using Truffle
    • 12. Astar IDE
      • 1. Astar Environment Configuration
      • 2. How to Use Astar EVM IDE
      • 3. How to Use Astar WASM IDE
    • 13. IRISnet IDE
      • 1. IRISnet Environment Configuration
      • 2. How to Use IRISnet EVM IDE
      • 3. How to Use IRISnet Native IDE
    • 14. Arbitrum IDE
      • 1. Arbitrum IDE Environment Configuration
      • 2. How to Use Arbitrum IDE
      • 3. Using Hardhat
      • 4. Using Ganache v7
      • 5. Using Truffle
    • 15. Starknet IDE
      • 1. Starknet IDE Environment Configuration
      • 2. How to Use Starknet IDE
    • 16. Mina IDE
      • 1. Mina IDE Environment Configuration
      • 2. How to Use Mina IDE
Powered by GitBook
On this page
  • Debugger Panel
  • Function Stack
  • Solidity Locals
  • Solidity State
  • Opcodes
  • Step Details
  • Stack
  • Memory
  • Storage
  • Call Stack
  • Call Data
  • Return Value
  • Full Storage Changes
  • Debugger Breakpoint Function

Was this helpful?

  1. 2. ChainIDE Modules
  2. 2.7. Plug-in System Module

2.7.1 ChainIDE Debugger

Debugger plugin for all EVM series blockchains

Previous2.7. Plug-in System ModuleNext2.7.2. ChainIDE Flattener Plugin

Last updated 1 year ago

Was this helpful?

ChainIDE Debugger displays the status of the contract after entering the transaction hash.

It can be used for transactions created on ChainIDE or by providing the address of the transaction. The latter presupposes that you have the source code of the contract, or that you have entered a verified contract address.

The following methods start a debugging session.

  1. When a successful or failed transaction appears in the terminal, click the debug button. The debugger will be activated and given focus in the side panel.

  2. Activate the debugger in the plugin manager and click on the error in the icon panel. To start a debugging session, enter the address of a deployed transaction -- while having source code in the editor, and click the Start Debugging button.

Debugger Panel

Function Stack

The function stack lists the functions that the transaction is interacting with.

Solidity Locals

Solidity Locals are used to representing local variables within a function.

Solidity State

These are the state variables of the smart contract

Opcodes

This panel shows the step number and opcode the debugger is currently in.

Step Details

Step Details shows more information about an opcode step.

Stack

This panel shows the EVM stack

Memory

Every new message call clears the memory. Memory is linear and can be addressed at the byte level. The read width is limited to 256 bits, while the write width can be 8 bits or 256 bits.

The memory panel consists of 3 columns. You may need to make the Remix side panels wider to get the formatting right. (Drag the border between the main panel and the side panel to the right).

Column 1 is the location in memory. The second column is the encoded value in hexadecimal. Column 3 is the decoded value. If there is nothing, then a question mark (?) will be displayed -- like this.

Storage

The panel is persistently stored

Call Stack

All computations are performed on a data array called the call stack. It has a maximum size of 1024 elements and contains 256-bit words.

Call Data

The call data contains function parameters.

Return Value

Refers to the value that the function will return.

Full Storage Changes

This shows the persistent storage at the end of the function.

Debugger Breakpoint Function