Package Exports
- node-inspector/bin/inspector
- node-inspector/bin/inspector.js
- node-inspector/lib/DebuggerAgent
- node-inspector/lib/ScriptManager
- node-inspector/lib/debug-server
- node-inspector/package.json
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-inspector) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Node Inspector is a debugger interface for nodeJS using the WebKit Web Inspector.
Getting Started
Requirements
-
- versions: 0.3.0 or later
A WebKit based browser: Chrome, Safari, etc.
Optional v8-profiler to use the profiles panel
Install
With npm
$ npm install -g node-inspector
Enable debug mode
To use node-inspector, enable debugging on the node you wish to debug. You can either start node with a debug flag like:
$ node --debug your/node/program.jsor, to pause your script on the first line:
$ node --debug-brk your/short/node/script.jsOr you can enable debugging on a node that is already running by sending it a signal:
Get the PID of the node process using your favorite method.
pgreporps -efare good$ pgrep -l node 2345 node your/node/server.jsSend it the USR1 signal
$ kill -s USR1 2345
Great! Now you are ready to attach node-inspector
Debugging
start the inspector. I usually put it in the background
$ node-inspector &open http://127.0.0.1:8080/debug?port=5858 in your favorite WebKit based browser
you should now see the javascript source from node. If you don't, click the scripts tab.
select a script and set some breakpoints (far left line numbers)
then watch the screencasts
For more information on getting started see the wiki
node-inspector works almost exactly like the web inspector in Safari and Chrome. Here's a good overview of the UI
FAQ / WTF
I don't see one of my script files in the file list.
try refreshing the browser (F5 or command-r)
My script runs too fast to attach the debugger.
use
--debug-brkto pause the script on the first lineI got the ui in a weird state.
when in doubt, refresh
Can I debug remotely?
Yes. node-inspector must be running on the same machine, but your browser can be anywhere. Just make sure port 8080 is accessible
Inspector options
--web-port=[port] port to host the inspector (default 8080)Cool stuff
- the WebKit Web Inspector debugger is a great js debugger interface, it works just as well for node
- uses WebSockets, so no polling for breaks
- remote debugging
- javascript top to bottom :)
- edit running code
Known Issues
This is beta quality code, so use at your own risk:
- be careful about viewing the contents of Buffer objects, each byte is displayed as an individual array element, for anything but tiny Buffers this will take too long to render
- while not stopped at a breakpoint the console doesn't always behave as you might expect
Profiling
VERY EXPERIMENTAL I don't recommend using this yet
To use the profiles panel, install the v8-profiler module:
npm install v8-profilerTo use it do something like:
var profiler = require('v8-profiler');
profiler.startProfiling('startup');
slowStartupFoo();
profiler.stopProfiling('startup');
profiler.takeSnapshot('beforeLeak');
leakyFoo();
profiler.takeSnapshot('afterLeak');Then view the profiling results with the profiles panel in node-inspector. You can also take heap snapshots on demand from the profiles panel.
Thanks
This project respectfully uses code from and thanks the authors of: