|
|
@ -6,16 +6,13 @@ Node has a built-in client for this debugger. To use this, start Node with the |
|
|
|
`debug` argument; a prompt will appear: |
|
|
|
|
|
|
|
% node debug myscript.js |
|
|
|
debug> |
|
|
|
|
|
|
|
At this point `myscript.js` is not yet running. To start the script, enter |
|
|
|
the command `run`. If everything works okay, the output should look like |
|
|
|
this: |
|
|
|
|
|
|
|
% node debug myscript.js |
|
|
|
debug> run |
|
|
|
debugger listening on port 5858 |
|
|
|
< debugger listening on port 5858 |
|
|
|
connecting... ok |
|
|
|
break in /home/indutny/Code/git/indutny/myscript.js:1 |
|
|
|
1 x = 5; |
|
|
|
2 setTimeout(function () { |
|
|
|
3 debugger; |
|
|
|
debug> |
|
|
|
|
|
|
|
Node's debugger client doesn't support the full range of commands, but |
|
|
|
simple step and inspection is possible. By putting the statement `debugger;` |
|
|
@ -33,35 +30,49 @@ For example, suppose `myscript.js` looked like this: |
|
|
|
|
|
|
|
Then once the debugger is run, it will break on line 4. |
|
|
|
|
|
|
|
% ./node debug myscript.js |
|
|
|
debug> run |
|
|
|
debugger listening on port 5858 |
|
|
|
% node debug myscript.js |
|
|
|
< debugger listening on port 5858 |
|
|
|
connecting... ok |
|
|
|
hello |
|
|
|
break in #<an Object>._onTimeout(), myscript.js:4 |
|
|
|
debugger; |
|
|
|
^ |
|
|
|
break in /home/indutny/Code/git/indutny/myscript.js:1 |
|
|
|
1 x = 5; |
|
|
|
2 setTimeout(function () { |
|
|
|
3 debugger; |
|
|
|
debug> cont |
|
|
|
< hello |
|
|
|
break in /home/indutny/Code/git/indutny/myscript.js:3 |
|
|
|
1 x = 5; |
|
|
|
2 setTimeout(function () { |
|
|
|
3 debugger; |
|
|
|
4 console.log("world"); |
|
|
|
5 }, 1000); |
|
|
|
debug> next |
|
|
|
break in #<an Object>._onTimeout(), myscript.js:5 |
|
|
|
console.log("world"); |
|
|
|
^ |
|
|
|
debug> print x |
|
|
|
break in /home/indutny/Code/git/indutny/myscript.js:4 |
|
|
|
2 setTimeout(function () { |
|
|
|
3 debugger; |
|
|
|
4 console.log("world"); |
|
|
|
5 }, 1000); |
|
|
|
6 console.log("hello"); |
|
|
|
debug> repl |
|
|
|
Press Ctrl + C to leave debug repl |
|
|
|
> x |
|
|
|
5 |
|
|
|
debug> print 2+2 |
|
|
|
> 2+2 |
|
|
|
4 |
|
|
|
debug> next |
|
|
|
world |
|
|
|
break in #<an Object>._onTimeout() returning undefined, myscript.js:6 |
|
|
|
}, 1000); |
|
|
|
^ |
|
|
|
< world |
|
|
|
break in /home/indutny/Code/git/indutny/myscript.js:5 |
|
|
|
3 debugger; |
|
|
|
4 console.log("world"); |
|
|
|
5 }, 1000); |
|
|
|
6 console.log("hello"); |
|
|
|
7 |
|
|
|
debug> quit |
|
|
|
A debugging session is active. Quit anyway? (y or n) y |
|
|
|
% |
|
|
|
|
|
|
|
|
|
|
|
The `print` command allows you to evaluate variables. The `next` command steps |
|
|
|
over to the next line. There are a few other commands available and more to |
|
|
|
come type `help` to see others. |
|
|
|
The `repl` command allows you to evaluate code remotely. The `next` command |
|
|
|
steps over to the next line. There are a few other commands available and more |
|
|
|
to come type `help` to see others. |
|
|
|
|
|
|
|
|
|
|
|
### Advanced Usage |
|
|
|