* Fix forking while debugging Debugger address in use no longer happens * Fix cropper errorv1.18.x
parent
bb6dcf3779
commit
1c35213934
@ -0,0 +1,41 @@
|
||||
'use strict';
|
||||
|
||||
var fork = require('child_process').fork;
|
||||
|
||||
var debugArg = process.execArgv.find(function (arg) {
|
||||
return /^--(debug|inspect)/.test(arg);
|
||||
});
|
||||
var debugging = !!debugArg;
|
||||
|
||||
debugArg = debugArg ? debugArg.replace('-brk', '').split('=') : ['--debug', 5859];
|
||||
var lastAddress = parseInt(debugArg[1], 10);
|
||||
|
||||
/**
|
||||
* child-process.fork, but safe for use in debuggers
|
||||
* @param {string} modulePath
|
||||
* @param {string[]} [args]
|
||||
* @param {any} [options]
|
||||
*/
|
||||
function debugFork(modulePath, args, options) {
|
||||
var execArgv = [];
|
||||
if (global.v8debug || debugging) {
|
||||
lastAddress += 1;
|
||||
|
||||
execArgv = [debugArg[0] + '=' + lastAddress, '--nolazy'];
|
||||
}
|
||||
|
||||
if (!Array.isArray(args)) {
|
||||
options = args;
|
||||
args = [];
|
||||
}
|
||||
|
||||
options = options || {};
|
||||
options = Object.assign({}, options, {
|
||||
execArgv: execArgv,
|
||||
});
|
||||
|
||||
return fork(modulePath, args, options);
|
||||
}
|
||||
debugFork.debugging = debugging;
|
||||
|
||||
module.exports = debugFork;
|
@ -1,16 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (execArgv) {
|
||||
execArgv = execArgv || process.execArgv;
|
||||
var debugArg = execArgv.find(function (arg) {
|
||||
return /^--(debug|inspect)/.test(arg);
|
||||
});
|
||||
if (global.v8debug || debugArg) {
|
||||
debugArg = debugArg ? debugArg.split('=') : ['--debug', 5859];
|
||||
var num = parseInt(debugArg[1], 10) + 1;
|
||||
|
||||
return { execArgv: [debugArg[0] + '=' + num, '--nolazy'] };
|
||||
}
|
||||
|
||||
return { execArgv: [] };
|
||||
};
|
Loading…
Reference in New Issue