|
1 | 1 | # Solidity Debugger for Visual Studio Code
|
2 | 2 |
|
3 |
| -> [!IMPORTANT] |
4 |
| -> Please follow the instructions in our [Getting Started Guide](https://docs.runtimeverification.com/simbolik/overview/getting-started) to set up the extension correctly. |
| 3 | +Simbolik is Solidity debugger for **Foundry** projects. |
| 4 | +It allows you to step through your Solidity code line by line, set breakpoints and inspect variables. |
5 | 5 |
|
6 |
| -> [!IMPORTANT] |
7 |
| -> The extension connects to the Simbolik API to provide debugging capabilities, and it transfers your compilation artifacts to our servers. |
8 |
| -> The data is deleted after the debugging session is finished. |
| 6 | +## Quick Start |
9 | 7 |
|
10 |
| -## Overview |
| 8 | +On first use Simbolik may ask for GitHub access. Alternatively, you can provide a Simbolik API key, [read more](https://docs.runtimeverification.com/simbolik/overview/getting-started). |
11 | 9 |
|
12 |
| -Simbolik is a powerful extension that allows developers to debug their Solidity smart contracts directly within Visual Studio Code. |
13 |
| -With this extension, you can easily set breakpoints, inspect variables, step through code, and debug your Solidity contracts with ease. |
| 10 | +Simbolik follows a **zero-configuration** approach where possible and falls back to **configuraiton-as-code** where needed. |
| 11 | +For simple smart contracts, you can start debugging with just a single click on the `▷ Debug`-button. |
14 | 12 |
|
15 |
| -Do you have questions, or need help? |
16 |
| - |
17 |
| -Visit our Documentation: https://docs.runtimeverification.com/simbolik |
18 |
| -Join our Discord: https://discord.gg/jnvEeDxW |
19 |
| -Join our TG group: https://t.me/rv_simbolik |
20 |
| - |
21 |
| -<img src="https://github.com/runtimeverification/simbolik-vscode/raw/master/images/simbolik-screenshot-1.png?raw=true" width="800" /> |
22 |
| - |
23 |
| -## Features |
| 13 | + |
24 | 14 |
|
25 |
| -- **Step-by-step debugging**: Debug your Solidity smart contracts line by line. |
26 |
| -- **Variable inspection**: View the current values of variables while debugging. |
27 |
| -- **Inspect EVM state**: View the current state of the EVM while debugging. |
28 |
| -- **Breakpoints**: Set breakpoints in your Solidity code to pause execution and inspect the state. |
29 |
| -- **Bytecode debugging**: Debug the compiled bytecode of your Solidity contracts. |
| 15 | +For complex smart contracts, you setup your debugging session similarly to a Foundry unit tests: |
| 16 | +You first define a `setUp` function to initialize your contracts, and then provide test function that calls the function you want to debug. |
| 17 | +If the test function is public and does not have parameters, the `▷ Debug`-button shows up, [read more](https://docs.runtimeverification.com/simbolik/overview/starting-the-debugger#debuggable-functions). |
30 | 18 |
|
31 |
| -## Coming Soon |
| 19 | +## Inspect Variables |
32 | 20 |
|
33 |
| -- **Foundry Cheatcodes**: Use Foundry's cheatcodes to quickly find bugs in your Solidity code. |
34 |
| -- **Symbolic Execution**: Enter an advanced symbolic execution mode to explore all possible paths through your Solidity code. You can get a sneak-peek of this feature at [try.simbolik.runtimeverification.com](try.simbolik.runtimeverification.com). |
| 21 | + |
35 | 22 |
|
36 |
| -## Getting started |
| 23 | +## Time Travel Debugging |
37 | 24 |
|
38 |
| -For detailed instructions and troubleshooting tips, please refer to our [Getting Started Guide](https://docs.runtimeverification.com/simbolik/overview/getting-started). |
39 |
| -Here is the quick version: |
| 25 | + |
40 | 26 |
|
41 |
| -To use the Solidity Debugger for Visual Studio Code, you need Foundry installed on your machine. |
42 |
| -Furthermore, you need a free API key from the Simbolik Website. |
| 27 | +## EVM Level Debugging |
43 | 28 |
|
44 |
| -### Setup Foundry |
| 29 | + |
45 | 30 |
|
46 |
| -```bash |
47 |
| -curl -L https://foundry.paradigm.xyz | bash |
48 |
| -foundryup |
49 |
| -``` |
| 31 | +## Questions? |
50 | 32 |
|
51 |
| -### Get a free API key |
52 |
| - |
53 |
| -1. Go to the [Simbolik Website](https://simbolik.runtimeverification.com) and login with GitHub, Metamask or Google. |
54 |
| -2. Copy the API key from the dashboard. |
55 |
| -3. Open the settings in Visual Studio Code and search for "Simbolik API Key". |
56 |
| -4. Paste the API key into the input field. |
57 |
| - |
58 |
| -## Usage |
59 |
| - |
60 |
| -1. Open your Foundry project in Visual Studio Code. If you don't have a project at hand, you can clone our [example project](https://github.com/runtimeverification/simbolik-examples). |
61 |
| -2. Set breakpoints in your Solidity code by clicking on the gutter area next to the line numbers. |
62 |
| -3. Click the "Debug" button above any parameterless public/external function in your Solidity contract. |
63 |
| -5. Use the debug toolbar to step through your code, inspect variables, and control the debugging process. |
| 33 | +Do you have questions, or need help? |
64 | 34 |
|
65 |
| -For more detailed instructions and troubleshooting tips, please refer to the [documentation](https://docs.runtimeverification.com/simbolik). |
| 35 | +Visit our Documentation: https://docs.runtimeverification.com/simbolik \ |
| 36 | +Join our Discord: https://discord.gg/jnvEeDxW \ |
| 37 | +Join our TG group: https://t.me/rv_simbolik |
66 | 38 |
|
67 |
| -## Contribution |
68 | 39 |
|
69 |
| -Contributions are welcome! If you find any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request on [GitHub](https://github.com/runtimeverification/simbolik-vscode). |
0 commit comments