UNPKG

2.37 kBMarkdownView Raw
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
4The 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
13Make 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
16git clone https://github.com/ethereum/remix
17cd remix/remix-debugger
18npm install
19```
20
21This will build the debugger. Start it by opening `index.html` in your browser.
22
23## Development
24
25Run `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
29Once Remix is connected to a node, you will be able to debug transactions.
30
31You can do that:
32 - using a block number and a transaction index.
33 - using a transaction hash.
34
35After loading the transaction succeeded, the hash, from and to field will show up. The VM trace is then loaded.
36
37The 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
41The slider allows to move quickly from a state to another.
42
43Stepping 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
52The 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
60The 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`