The Settings Window

The settings window is a graphical frontend for dbg.project.json and dbg.contract.json. It lets you configure the behaviors of the Solidity compiler and debugger.

How to Open the Settings Window

There are three ways to open the settings window:

Test-Contract Selection

Settings can be changed for a particular test-contract, or they can be changed globally by selecting (any). Making changes to (any) sets global defaults that affect all tests. However, individual tests may override the global defaults with their own values.

Changes made to (any) are stored in dbg.project.json. Changes made to any other test are stored in contracts-dbg/TEST-NAME/dbg.contract.json

Compiler Settings

SettingWhat It Does
Solidity VersionCompiler version to use when compiling the selected test
Additional Source DirectoriesAdditional import paths in case you need to import source files that reside in another directory.
Pre-Build StepsShell commands to run before compiling the test contract

Debugger Settings

SettingWhat It Does
Break on EntryDebugger will automatically stop at the beginning of the test contract
Show Storage Access (Verbose)Verbose print all access to contract storage
Entry PointLegacy value, leave it as-is
Forking→EnabledYou can start an instance of the debugger that forks another Ethereum node.
This means that it will simulate having the same state as that node,
but it will work as a local development network.
That way you can interact with deployed protocols and test complex interactions locally
Forking→Ethereum RPC URLURL of an Ethereum RPC node. For example:
"https://eth-mainnet.alchemyapi.io/v2/KEY"
Forking→Block NumberThe debugger will by default fork from the most recent block.
However, if the provided URL points to an archive node you can also fork a past state
Hardhat Integration→
Import Debug Symbols from Hardhat Project
When enabled, the debugger will import symbols from the artifacts folder of a Hardhat project
Hardhat Integration→
Hardhat Project Root Directory
Pre-Debug StepsShell commands to execute after compiling the test contract, but before the debugging session begins