At Voxer, all of our production machines run on SmartOS, and as such, have access to really powerful tools to help with debugging and fixing problems.

One of the most helpful tools to use when debugging problematic node processes is mdb(1). With the v8 module for mdb(1), there is a ton of valuable information about node/JavaScript - including JavaScript objects, stack traces with filenames and numbers, etc. - that can be gathered from node processes. The engineers over at Joyent have been able to do a lot of cool things with it.

We've created a command line tool to help in the postmortem debugging of node.js processes. It uses mdb(1) under-the-hood to gather a slew of data, and then formats it into a single HTML page to be viewed in a web browser.

The code is released under the MIT license, and is hosted on GitHub:

https://github.com/Voxer/node-corevis

And an example of a troubled node process can be seen here:

http://us-east.manta.joyent.com/devops@voxer.com/public/corevis/example.html