Debugger
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:
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.
You can watch expression and variable values while debugging your code.
On every breakpoint each expression from the watchers list will be evaluated
in the current context and displayed just before the breakpoint’s source code
listing.
cont
,c
- Continue executionstep
,s
- Step in- ,
o
- Step out pause
- Pause running code (like pause button in Developer Tools)
setBreakpoint()
,sb()
- Set breakpoint on current linesetBreakpoint(line)
,sb(line)
- Set breakpoint on specific linesetBreakpoint('fn()')
,sb(...)
- Set breakpoint on a first statement in
functions bodysetBreakpoint('script.js', 1)
,sb(...)
- Set breakpoint on first line of
script.jsclearBreakpoint
,cb(...)
- Clear breakpoint
It is also possible to set a breakpoint in a file (module) that
isn’t loaded yet:
backtrace
,bt
- Print backtrace of current execution framewatch(expr)
- Add expression to watch listunwatch(expr)
- Remove expression from watch listwatchers
- List all watchers and their values (automatically listed on each
breakpoint)repl
- Open debugger’s repl for evaluation in debugging script’s context
run
- Run script (automatically runs on debugger’s start)restart
- Restart scriptkill
- Kill script
scripts
- List all loaded scriptsversion
- Display v8’s version
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
.
- - Connects to the process via the URI such as localhost:5858