Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

debugging - How to debug Node.JS child forked process?

I'm trying to debug the child Node.JS process created using:

var child = require('child_process');
child .fork(__dirname + '/task.js');

The problem is that when running in IntelliJ/WebStorm both parent and child process start on the same port.

debugger listening on port 40893
debugger listening on port 40893

So it only debugs the parent process.

Is there any way to set IntelliJ to debug the child process or force it to start on a different port so I can connect it in Remote debug?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Yes. You have to spawn your process in a new port. There is a workaround to debug with clusters, in the same way you can do:

Start your app with the --debug command and then:

var child = require('child_process');
var debug = typeof v8debug === 'object';
if (debug) {   
    //Set an unused port number.    
    process.execArgv.push('--debug=' + (40894));    
}    
child.fork(__dirname + '/task.js');

debugger listening on port 40894


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...