Node Inspector is a debugger interface for nodeJS using the WebKit Web Inspector.
- versions: 0.1.100 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
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 --agent-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 --agent-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
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
- if the 'this' object in a call frame is the global object, expanding it yield nothing
- 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
- the inspector could be extended to provide collaborative debugging with multiple inspectors connected to the same debug session.
- use a native node extension instead of the inspector.js as a separate process
- save application settings
- debug-agent needs a lot of work
- try out live edit
- profiler panel
This project respectfully uses code from and thanks the authors of: