forked from nodejs/node-v0.x-archive
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
75 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,6 +29,7 @@ | |
@include assert | ||
@include tty | ||
@include os | ||
@include debugger | ||
|
||
# Appendixes | ||
@include appendix_1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
## Debugger | ||
|
||
V8 comes with an extensive debugger which is accessable out-of-process via a | ||
simple [TCP protocol](http://code.google.com/p/v8/wiki/DebuggerProtocol). | ||
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 | ||
connecting...ok | ||
|
||
Node's debugger client doesn't support the full range of commands, but | ||
simple step and inspection is possible. By putting the statement `debugger;` | ||
into the source code of your script, you will enable a breakpoint. | ||
|
||
For example, suppose `myscript.js` looked like this: | ||
|
||
// myscript.js | ||
x = 5; | ||
setTimeout(function () { | ||
debugger; | ||
console.log("world"); | ||
}, 1000); | ||
console.log("hello"); | ||
|
||
Then once the debugger is run, it will break on line 4. | ||
|
||
% ./node debug myscript.js | ||
debug> run | ||
debugger listening on port 5858 | ||
connecting...ok | ||
hello | ||
break in #<an Object>._onTimeout(), myscript.js:4 | ||
debugger; | ||
^ | ||
debug> next | ||
break in #<an Object>._onTimeout(), myscript.js:5 | ||
console.log("world"); | ||
^ | ||
debug> print x | ||
5 | ||
debug> print 2+2 | ||
4 | ||
debug> next | ||
world | ||
break in #<an Object>._onTimeout() returning undefined, myscript.js:6 | ||
}, 1000); | ||
^ | ||
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. | ||
|
||
|
||
### Advanced Usage | ||
|
||
The V8 debugger can be enabled and accessed either by starting Node with | ||
the `--debug` command-line flag or by signaling an existing Node process | ||
with `SIGUSR1`. | ||
|
||
|