1 | # `remix-debugger`
|
2 | # (Remix debugger has been deprecated and is not maintained anymore - the `remix-debug` module can be used to build your own debugger)
|
3 |
|
4 | The Remix Debugger is a webapp to debug the Ethereum VM and transactions.
|
5 |
|
6 | + [Installation](#installation)
|
7 | + [Development](#development)
|
8 | + [First steps](#firststeps)
|
9 | + [Tests](#tests)
|
10 |
|
11 | ## Installation
|
12 |
|
13 | Make sure Node is [installed on your setup](https://docs.npmjs.com/getting-started/installing-node), and that a [local `geth`/`eth` node is running](../README.md#how-to-use).
|
14 |
|
15 | ```bash
|
16 | git clone https://github.com/ethereum/remix
|
17 | cd remix/remix-debugger
|
18 | npm install
|
19 | ```
|
20 |
|
21 | This will build the debugger. Start it by opening `index.html` in your browser.
|
22 |
|
23 | ## Development
|
24 |
|
25 | Run `npm run start_dev` to start a local webserver, accessible at `http://127.0.0.1:8080`. Your browser will reload when files are updated.
|
26 |
|
27 | ## <a name="firststeps"></a>First steps
|
28 |
|
29 | Once Remix is connected to a node, you will be able to debug transactions.
|
30 |
|
31 | You can do that:
|
32 | - using a block number and a transaction index.
|
33 | - using a transaction hash.
|
34 |
|
35 | After loading the transaction succeeded, the hash, from and to field will show up. The VM trace is then loaded.
|
36 |
|
37 | The debugger itself contains several controls that allow stepping over the trace and seing the current state of a selected step:
|
38 |
|
39 | #### Slider and Stepping action
|
40 |
|
41 | The slider allows to move quickly from a state to another.
|
42 |
|
43 | Stepping actions are:
|
44 | - Step Into Back
|
45 | - Step Over Back
|
46 | - Step Over Forward
|
47 | - Step Into Forward
|
48 | - Jump Next Call: this will select the next state that refers to a context changes - CALL, CALLCODE, DELEGATECALL, CREATE.
|
49 |
|
50 | #### State Viewer
|
51 |
|
52 | The upper right panel contains basic informations about the current step:
|
53 | - VMTraceStep: the index in the trace of the current step.
|
54 | - Step
|
55 | - Add memory
|
56 | - Gas: gas used by this step
|
57 | - Remaining gas: gas left
|
58 | - Loaded address: the current code loaded, refers to the executing code.
|
59 |
|
60 | The other 6 panels describe the current selected state:
|
61 | - Instructions list: list of all the instruction that defines the current executing code.
|
62 | - Stack
|
63 | - Storage Changes
|
64 | - Memory
|
65 | - Call Data$
|
66 | - Call Stack
|
67 |
|
68 | ## Tests
|
69 |
|
70 | * To run unit tests, run `npm test`.
|
71 |
|
72 | * For local headless browser tests:
|
73 | * To install `selenium`: `npm run selenium-install`
|
74 | * Every time you want to run local browser tests, run: `npm run test-browser`
|