In the beginning there was ‘debugger’
http://nodejs.org/api/debugger.html
To debug in console:
node debug test.js
note: 'debug' not '--debug', this is a different command we'll see later
This hook to V8's debugger is what all
Node debug tools bind to.
Debug command highlights
• Stepping
– cont, next, step, out - What you think they do
• Breakpoints
– setBreakpoint()/sb() - Set breakpoint on current
line or at statement
– clearBreakpoint/clearBreakpoint()/cb(...) - clear
breakpoint (duh)
Debug command highlights
• Info
– backtrace/bt - Print backtrace of current execution frame
– watch(expr) - Add expression to watch list
– unwatch(expr) - Remove expression from watch list
– watchers - List all watchers and their values
– repl - Open debugger's repl for evaluation in debugging
script's context
• Execution control
– run - Run script (automatically runs on debugger's start)
– restart - Restart script
– kill - Kill script
Can’t we use something a little less…
Arcane? Unusual? Ugly? 1990?
Eclipse IDE
Eclipse Node Debugger Walk Through:
https://github.com/joyent/node/wiki/Using-
Eclipse-as-Node-Applications-Debugger
Chrome Dev Tools + V8 Debugger:
http://code.google.com/p/chromedevtools/
Warning, plug-in compatibility can be a
nightmare! Aptana or other highly customized
Eclipse based IDE's may not work.
Eclipse advanced debugging
To debug with real source instead of
'VirtualProject' files
http://code.google.com/p/chromedevt
ools/wiki/FeatureDebugOnRealFiles
Screen capture of setup
http://www.youtube.com/watch?v=GV
xFFw7lkYg
node-inspector
Webkit Inspector debugging
https://github.com/dannycoates/node-inspector
front-end JavaScript debugger reused
for back-end JavaScript, what a great
idea!
1.) npm install –g node-inspector
2.) node --debug-brk test.js
3.) node-inspector
4.) Open browser to http://localhost:8080/debug?port=5858
Final Thoughts
• --debug vs --debug-brk
• Remote Debugging
• Long stack traces
http://stackoverflow.com/questions/7697038/more-
than-10-lines-in-a-node-js-stack-error