Точки останова отладки Webstorm не работают в nodejs
Когда я пытаюсь установить точку останова и отлаживать файл, отладчик просто запускает приложение, не останавливаясь на контрольных точках.
Это мой код:
console.log('123');
И это мой вывод:
/usr/bin/node --debug-brk=39765 --nolazy index.js
debugger listening on port 39765
123
Process finished with exit code 0
Есть ли у кого-нибудь идеи, что может быть проблемой?
Ответы
Ответ 1
Попробуйте отключить js.debugger.v8.use.any.breakpoint в реестре WebStorm.
Вы можете сделать это, перейдя в Справка → Найти действие
Здесь просто введите Реестр.
Для меня отключение этой опции сделало отладку чего-либо node -связанным гораздо быстрее и гораздо более предсказуемым.
Ответ 2
Хотел подслушать и сказать, что абсолютно необходимо использовать --debug-brk
, а не --debug
, чтобы получать контрольные точки WebStorm для удаленной отладки, а также запускать сервер непосредственно из webstorm.
Даже если --debug-brk
технически просто останавливается и ждет отладчика, чтобы присоединиться, а --debug
позволяет вам присоединиться позже, мои точки останова завершились неудачно с помощью только --debug
независимо от того, какую удаленную конфигурацию я попробовал.
Насколько я могу судить, подключение WebStorm 11 к серверу node.js на порту отладки, только с --debug
, будет подключаться, но не будет загружать рабочие точки останова.
Ответ 3
- Перейдите к
Run -> View Breakpoints...
или нажмите
shift + command + F8 в OS X.
- Выберите точку останова из списка и убедитесь, что отмечен
Suspend
.
![Enable Suspend]()
Ответ 4
Отладочные точки останова не работают в моем PhpStorm 2016.3.2 с NodeJS 7.7.x. Я ожидаю, что у WebStorm будет такая же проблема.
Если вы перешли на Node 6 (я протестировал с 6.9.4), он начнет работать правильно.
Ответ 5
Для меня проблема заключалась в том, что WebStorm не очень хорошо работал с моими скриптами. Он сказал бы, что отладчик прослушивает, а затем запускает всю программу без остановки в точке останова, как описано в вопросе.
Обходной путь, который я использовал, состоял в том, чтобы просто поставить точку останова в скомпилированном js файле и отлаживать оттуда вместо этого.