2016-09-21 7 views
1

Я пытаюсь отлаживать дочерний процесс узла, используя отладчик собственного узла. См. Здесь repo.не может отлаживать дочерний процесс узла (используя собственный отладчик узла)

Я попробовал все варианты короля, в соответствии с: debug1, debug1, debug3 (и много других ссылок, которые я нашел в Интернете).

Non эти варианты работали для меня ..

Это мой пример кода:

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

Вам придется открыть chrome-devtools://devtools/... с 9222 портом + новое окно для дочернего процесса проверьте, порт 9228 (как это порт, я добавил в этом примере)

Рабочий стол here