var DTraceProvider; function DTraceProviderStub() {} DTraceProviderStub.prototype.addProbe = function(name) { var p = { 'fire': function () {} }; this[name] = p; return (p); }; DTraceProviderStub.prototype.enable = function() {}; DTraceProviderStub.prototype.fire = function() {}; DTraceProviderStub.prototype.disable = function() {}; var builds = ['Release', 'default', 'Debug']; for (var i in builds) { try { var binding = require('./build/' + builds[i] + '/DTraceProviderBindings'); DTraceProvider = binding.DTraceProvider; break; } catch (e) { // if the platform looks like it _should_ have DTrace // available, log a failure to load the bindings. if (process.platform == 'darwin' || process.platform == 'solaris' || process.platform == 'freebsd') { console.error(e); } } } if (!DTraceProvider) { DTraceProvider = DTraceProviderStub; } exports.DTraceProvider = DTraceProvider; exports.createDTraceProvider = function(name, module) { if (arguments.length == 2) return (new exports.DTraceProvider(name, module)); return (new exports.DTraceProvider(name)); };