在subprocess上使用Node.js命令行debugging器?

我使用Node客户端debugging器,如下所示:

节点debuggingmyscript.js

但是这个过程会产生一个孩子使用:

var child = require(“child_process”)。fork(cmd,args);

有没有办法让这个孩子也可以在“debugging”模式下启动?

是。 你必须在一个新的端口上产生你的进程。 有一个解决方法来debugging群集,就像你可以做的那样:

 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); 

debugging程序在端口5859上侦听

不是问题。 所有你需要做的就是发送debugging信号到正在运行的进程。 查看节点检查员文档,find启用debugging模式

我不能告诉你如何做一个debug-brk,我不确定你可以,但你总是可以做一些代码

而(真){}debugging器

所以你可以捕获debugging语句,然后手动退出循环。 肮脏的我知道=)

这是另一种方式,这将使孩子在一个自由端口上进行debugging:

 // 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);