1

我正在尝试使用IntelliJ IDEA 12.1.3节点 10.10从此处调试 child_process 示例。当我从终端运行时,一切正常。控制台输出按预期显示。但是,当我使用 IDEA 调试相同的脚本时,控制台输出中没有消息,应用程序就在那里。这是控制台窗口中的内容:nodejs app.js

/usr/bin/nodejs --debug-brk=58954 app.js
debugger listening on port 58954
debugger listening on port 58954

当我在没有附加调试器的情况下在 IDEA 中运行脚本时,脚本按预期工作。

为什么附加调试器会破坏脚本?

4

2 回答 2

4

您可以强制孩子使用空闲端口进行调试。InteliJ 将自动选择子进程选择的端口。

这是一个例子:

// 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);
于 2014-06-22T12:11:16.493 回答
1

对我来说,这看起来像是 node.js fork 中的一个错误:父进程和子进程都接收--debug-brk=58954开关并尝试启动调试器并侦听端口 58954。

于 2013-06-09T10:37:20.753 回答