mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
'use strict';
|
|
var cp = require('child_process');
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
|
|
var scriptFiles = [
|
|
'internal/v8_prof_polyfill',
|
|
'v8/tools/splaytree',
|
|
'v8/tools/codemap',
|
|
'v8/tools/csvparser',
|
|
'v8/tools/consarray',
|
|
'v8/tools/profile',
|
|
'v8/tools/profile_view',
|
|
'v8/tools/logreader',
|
|
'v8/tools/tickprocessor',
|
|
'v8/tools/SourceMap',
|
|
'v8/tools/tickprocessor-driver'
|
|
];
|
|
var tempScript = 'tick-processor-tmp-' + process.pid;
|
|
var tempNm = 'mac-nm-' + process.pid;
|
|
|
|
process.on('exit', function() {
|
|
try { fs.unlinkSync(tempScript); } catch (e) {}
|
|
try { fs.unlinkSync(tempNm); } catch (e) {}
|
|
});
|
|
process.on('uncaughtException', function(err) {
|
|
try { fs.unlinkSync(tempScript); } catch (e) {}
|
|
try { fs.unlinkSync(tempNm); } catch (e) {}
|
|
throw err;
|
|
});
|
|
|
|
scriptFiles.forEach(function(script) {
|
|
fs.appendFileSync(tempScript, process.binding('natives')[script]);
|
|
});
|
|
var tickArguments = [tempScript];
|
|
if (process.platform === 'darwin') {
|
|
fs.writeFileSync(tempNm, process.binding('natives')['v8/tools/mac-nm'],
|
|
{ mode: 0o555 });
|
|
tickArguments.push('--mac', '--nm=' + path.join(process.cwd(), tempNm));
|
|
} else if (process.platform === 'win32') {
|
|
tickArguments.push('--windows');
|
|
}
|
|
tickArguments.push.apply(tickArguments, process.argv.slice(1));
|
|
cp.spawn(process.execPath, tickArguments, { stdio: 'inherit' });
|
|
|