Node Inspector is a debugger interface for nodeJS using the WebKit Web Inspector.
- nodeJS
- versions: 0.1.101 or later
- A WebKit based browser: Chrome, Safari, OmniWeb, etc.
- make a debug build of node ./configure --debug make make install
If you get an error like: Build failed: Missing node signature for...
try make distclean
then try again.
There are two ways to use node-inspector. First I'll describe the easy way. As an example lets debug test/hello.js, from the root project directory (node-inspector)
-
start the inspector like this: node bin/inspector.js --start=test/hello.js
Note: --start path must be relative to the current working directory or absolute
-
open http://127.0.0.1:8080 in your favorite WebKit based browser
Chrome 5 users MUST use 127.0.0.1 NOT localhost or the browser will not connect to the debugger
-
you should now see the javascript source from nodeJS
-
set some breakpoints, see what happens
This will start a child process node_g --debug test/hello.js
and host the inspector
interface at http://localhost:8080. The other way is to connect the inspector to an
external node process.
-
start a node process: node_g --debug=7878 test/hello.js
-
start the inspector: node bin/inspector.js --debug-port=7878 --web-port=8000
For more information on getting started see the wiki
--start=[file] starts [file] in a child process with node_g --debug
[file] path can be absolute or relative to $PWD
--start-brk=[file] same as start with --debug-brk
--web-port=[port] port to host the inspector (default 8080)
--debug-port=[port] v8 debug port to connect to (default 5858)
--fwd-io forward stdout and stderr from the child process to inspector console
This project started as a Chrome extension. For more info see the wiki.
- the WebKit Web Inspector debugger is a great js debugger interface, it works just as well for node
- uses a WebSocket to connect to debug-agent, so no polling for breaks
- remote debugging
- javascript top to bottom :)
This is alpha 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
- pause on exceptions doesn't play nice with the node event loop
- closing the inspector does not stop debugging, you must stop inspector.js manually
- save application settings
- profiler panel
This project respectfully uses code from and thanks the authors of: