2016-09-21 4 views
1

ネイティブノードデバッガを使用して、ノードの子プロセスをデバッグしようとしています。たとえばrepoを参照してください。ノードの子プロセスをデバッグできません(ノードネイティブデバッガを使用)

debug1debug1debug3(と私がオンラインで見つけた他の多くの参考文献)によると、すべての王の選択肢を試しました。

index.js:

const spawn = require('child_process').spawn; 
const path = require('path'); 

const ls = spawn('node', [path.resolve('./child.js')], {execArgv: '--debug-brk=4545'}); 

ls.stdout.on('data', (data) => { 
    console.log(`stdout: ${data}`); 
}); 

ls.stderr.on('data', (data) => { 
    console.log(`stderr: ${data}`); 
}); 

ls.on('close', (code) => { 
    console.log(`child process exited with code ${code}`); 
}); 

child.js:

debugger; 
const a = 123; 

console.log(a); 

Iこれらのオプションの

以外は

これは私のコード例..です私のために働きました実行:

node --debug-brk --inspect=9222 index.js

クロムにchrome-devtools://devtools/...を開きます。メインプロセスのデバッグは素晴らしいですし、子プロセスの出力も表示されます。動作していないのは子プロセスのデバッグだけです...

ここで何が間違っていますか?

答えて

4

自分の質問に答えるだけで、誰かが私と同じ問題を抱えている場合があります。このissueによると、解決策は次のとおりです。

const file = path.resolve('./child.js'); 
const args = ['--inspect=9228', '--debug-brk', file]; 
const ls = spawn('node', args); 

あなたは9222ポートでchrome-devtools://devtools/...を開く必要があります+新しいポート9228に、子プロセスのためにウィンドウを検査(これは私がこの例で追加したポートであるとして)

実例を見ることができますhere

関連する問題