我使用Node客户端调试器,如下所示:
节点调试myscript.js
但是这个过程会产生一个孩子:
var child = require(" child_process")。fork(cmd,args);
这个孩子有没有办法在" debug"模式?
答案 0 :(得分:3)
是。您必须在新端口中生成进程。有一种解决方法可以调试集群,方法与您一样:
var debug = process.execArgv.indexOf('--debug') !== -1;
if(debug) {
//Set an unused port number.
process.execArgv.push('--debug=' + (5859));
}
var child = require("child_process").fork(cmd, args);
.... 调试器侦听端口5859
答案 1 :(得分:0)
不是问题。您需要做的就是将调试Sig发送到正在运行的进程。查看node-inspector docs查找启用调试模式
我不能告诉你如何做一个debug-brk,我不确定你能做什么,但你可以随时从代码中做一些事情
while(true){debugger}
因此你可以捕获调试语句然后手动退出循环。肮脏我知道=)
答案 2 :(得分:-1)
这是另一种方式,这将使孩子在自由端口上可调试:
// Determine if in debug mode.
// If so, pass in a debug-brk option manually, without specifying port.
var startOpts = {};
var isInDebugMode = typeof v8debug === 'object';
if(isInDebugMode) {
startOpts = {execArgv: ['--debug-brk']};
}
child_process.fork('./some_module.js', startArgs, startOpts);