Подтвердить что ты не робот

Подключение WebStorm к удаленному сеансу отладки node.js

Я запускаю приложение Node.js в виртуальной машине Linux в Oracle VirtualBox. Порт 5858 на виртуальной машине перенаправляется на порт 5858 на локальном хосте.

Я запускаю WebStorm в операционной системе хоста (Windows 7). В WebStorm я нажимаю Run >> Edit Configurations...., затем я нажимаю кнопку добавления (знак плюса) и выбираю Node.js remote debug. Затем я ввожу имя конфигурации и оставляю хост как 127.0.0.1, а порт - 5858. Я нажимаю OK и убедитесь, что мое приложение node запущено на виртуальной машине с флагом --debug.

Затем я нажимаю значок ошибки на панели инструментов WebStorm, а отладчик появляется в нижней части WebStorm IDE.

Как я могу подтвердить, что соединение выполнено успешно? Точки останова не работают, и консоль в WebStorm остается пустым (в то время как информация отправляется на консоль на виртуальной машине Linux). Может ли кто-нибудь предложить, что еще нужно сделать, чтобы заставить сеанс удаленной отладки работать?

4b9b3361

Ответ 1

Вместо просто

$ vagrant ssh

попробовать

$ vagrant ssh -- -L 5858:127.0.0.1:5858

Я также удалил строку config.vm.network :forwarded_port, guest: 5858, host: 5858 из моего Vagrantfile и сделал $ vagrant reload.

В вашем брандмауэре запустите

$ node --debug-brk path/to/file.js

Настройте конфигурацию удаленной отладки/отладки Node.js, настройки по умолчанию прекрасны (хост 127.0.0.1 и порт 5858).

Выполните следующее с вашего компьютера HOST, а не на брандмаутере.

$ telnet 127.0.0.1 5858

Вы должны получить ответ вроде

Type: connect
V8-Version: 3.14.5.9
Protocol-Version: 1
Embedding-Host: node v0.10.28
Content-Length: 0

Если вы не ошибетесь, то переместите порт вперед. Вы можете попробовать другой порт на стороне хоста и обновить конфигурацию Run/Debug в веб-буфере, которая ранее была настроена с порта 5858 на новый порт.

Теперь запустите конфигурацию отладки NodeJS. Он должен немедленно поднять файл, и вы сможете его отладить.

Я основал свои шаги с PHPStorm, но он должен быть таким же. Я предполагаю, что он будет работать на всех IDE на IntelliJ, если у вас установлен плагин NodeJS.

Ответ 2

1) Из руководства WebStorm:

Когда приложение для отладки выполняется на физически удаленном узле, вам нужно запустить прокси-сервер или любое другое программное обеспечение, обеспечивающее переадресацию портов на сервере Node.js. Это необходимо, поскольку порт отладки может открываться только на локальном сетевом интерфейсе. Не удается получить доступ к локальному сетевому интерфейсу с другого компьютера, поэтому WebStorm не сможет подключиться к нему при запуске сеанса отладки.

2) localhost на VM - это не тот же локальный хост (как это ни странно звучит) на хосте.

3) Отладчик V8 прослушивает localhost

Решение:

Вы можете настроить прокси-сервер ssh на linux VM: ssh -L 5858:127.0.0.1:5858 <vm_user>@<vm_ip> -N, и здесь вы можете найти ответ, как это сделать в Windows → fooobar.com/questions/276815/... Если вы сделаете это, ваша конфигурация отладки в WebStorm будет Host: 127.0.0.1 Port: 5858

Вы можете проверить, подключен ли WebStorm к удаленной сессии отладки, выбрав вкладку "Отладчик" и "Переменные". не может подключиться, подключен

Ответ 3

Это то, что я делаю в своей Linux Debian VM:

установить балансир

sudo apt-get install balance -y

создать маршрут в балансировке, чтобы перенаправить ваш порт 5858 на 5859

balance 5859 127.0.0.1:5858

запустите приложение

node --debug app.js

теперь вы можете получить доступ к нему извне виртуальной машины на порту 5859

Ответ 4

Просто голова, когда я пробовал это, мне пришлось использовать --debug-brk. Запуск с помощью только --debug не позволял WebStorm устанавливать точки останова после подключения.