Точки останова отладки 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 файле и отлаживать оттуда вместо этого.