5 ms·
> despite good intentions, V8 breaks node.js frequently -- and debugging those problems is a time-consuming and arduous task requiring a great deal of technical
by DCoder 12y ago
> despite good intentions, V8 breaks node.js frequently -- and debugging those problems is a time-consuming and arduous task requiring a great deal of technical sophistication
Can you provide some examples? I'd love to see some debugging war stories.
- bcantrill 12y agoTJ can provide examples from his perspective; my personal examples are all from keeping the node.js production debugging facilities[1][2] operating properly. We have tried hard to make these facilities independent from V8, but the reality is that they encode how V8 operates and that changes to V8 can break them. Fortunately, the node.js DTrace ustack helper[3] -- by far the more intricate piece -- hasn't needed major maintenance, but the facilities for iterating over all JavaScript objects from a core dump (for example) have been broken quite a few times. I'm afraid the war stories from debugging these aren't terribly heroic -- they boil down to one of the node.js debugging tests failing and Dave Pacheco or me (exactly which one frequently being adjudicated by fingers-on-noses) sitting down for several intense hours to learn how V8 has changed and modify our debugging support accordingly. If you want to see the details of the changes needed to accommodate V8, you can look at some of the specific commits for the debugging support.[4] [1] http://www.joyent.com/developers/node/debug http://www.joyent.com/developers/node/debug [2] http://www.slideshare.net/bcantrill/goto2012 http://www.slideshare.net/bcantrill/goto2012 [3] http://dtrace.org/blogs/dap/2013/11/20/understanding-dtrace-ustack-helpers/ http://dtrace.org/blogs/dap/2013/11/20/understanding-dtrace-... [4] https://github.com/joyent/illumos-joyent/tree/master/usr/src/cmd/mdb/common/modules/v8 https://github.com/joyent/illumos-joyent/tree/master/usr/src...
- DCoder 12y agoThank you, I will definitely check those out.