2015-05-12 4 views
0

Отправляя SIGUSR1, я могу запустить внутренний отладчик на порту 5858 и использовать функцию проверки узлов для отладки выполняющегося процесса через графический интерфейс в браузере.Как подключить запущенный процесс node.js и отладить без GUI?

Однако, если хост-сервер не имеет графического интерфейса, и этот вид порта (5858) является межсетевым экраном из-за политики безопасности. Как отладить его в локальной консоли? как использовать gdb в C/C++?

Я попытался локально подключиться к telnet 5858, но, похоже, он работает в HTTP для отладки. Есть ли какой-нибудь существующий инструмент?

ответ

4

Node.js (по крайней мере, версия 7.x.x) имеет встроенный CLI/текстовый клиент для отладчика. Чтобы получить доступ к нему, запустите свою программу с аргументом debug; например: node debug server.js.

Подробнее о навигации по отладчику, refer to the documentation.

В документации содержится объяснение того, как прикреплять к работающему PID (node debug -p <pid>) или как подключиться к процессу через порт 5858, как вы спрашиваете (node debug localhost:5858).

На момент написания этой статьи версия Node.js 8.0.0 еще не выпущена. Однако возможно, что отладчик CLI будет заменен в этой версии. (Просто поместите это здесь для людей, которые найдут этот ответ в будущем. Если версия Node.js версии 8.0.0 или новее изменилась с 7.xx, так что этот ответ больше не действителен, подумайте над добавлением правильной информации для более новой версии здесь. :-D)

+0

при использовании «node debug server.js» процесс будет приостановлен и готов к отладке. Но мне нужно запустить процесс нормально, и если во время выполнения есть что-то не так, я могу подключиться к нему и выполнить консольную отладку вместо графического интерфейса браузера. – skygragon

+0

Введите 'cont' в приглашении отладки, и программа запустится до тех пор, пока не ударит точку останова. Или используйте 'node debug -p ' для подключения к определенному PID. Или используйте 'node debug localhost: 5858' для подключения к порту 5858 с отладчиком. – Trott

+0

спасибо! это то, что я хочу! – skygragon

Смежные вопросы