Skip to content
Browse files

debugger: a little bit of doc

  • Loading branch information...
1 parent af6662d commit 916f567d23c9e665f71c63df05734823b085fff4 @ry ry committed
Showing with 75 additions and 0 deletions.
  1. +1 −0 doc/api/_toc.markdown
  2. +1 −0 doc/api/all.markdown
  3. +73 −0 doc/api/debugger.markdown
View
1 doc/api/_toc.markdown
@@ -28,6 +28,7 @@
* [Assertion Testing](assert.html)
* [TTY](tty.html)
* [OS](os.html)
+* [Debugger](debugger.html)
* Appendixes
* [Appendix 1: Recommended Third-party Modules](appendix_1.html)
* [Appendix 2: Deprecated API's](appendix_2.html)
View
1 doc/api/all.markdown
@@ -29,6 +29,7 @@
@include assert
@include tty
@include os
+@include debugger
# Appendixes
@include appendix_1
View
73 doc/api/debugger.markdown
@@ -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`.
+
+

0 comments on commit 916f567

Please sign in to comment.
Something went wrong with that request. Please try again.