Есть приложение-сервер на базе node.js, работающее под windows 10. С некоторой версии в этом приложении перестала поддерживаться возможность типовой node.js отладки с помощью --inspect. Инструкция debugger так же не работает.
Какие есть способы отладки? Что то можно придумать лучшее, чем console.log()?
Inviz Custos, можно и так сказать. Помимо поддержки node.js скриптов, это стороннее сервер-приложение поддерживает c# и c++, и там с отладкой проблем нет. Но вот именно с режимом node.js/javascript --inspect перестала работать. Не появляется в консоли debugger listening on port 9229... ну и никакими инструментами соответственно не виден этот режим отладки.
Поэтому вопрос и заключается в том, какие есть нестандартные способы. Представьте что у вас node --inspect не работает, не важно почему :) Как бы вы организовали отладку?
Помимо поддержки node.js скриптов, это стороннее сервер-приложение поддерживает c# и c++
В каком виде это поддерживается? Аддоны для Node.js? (которые имеют расширение .node после компиляции)
это стороннее сервер-приложение
Код открыт, или приложение защищено каким-то протектором?
Представьте что у вас node --inspect не работает, не важно почему :) Как бы вы организовали отладку?
Просто так --inspect не перестает работать.
Вангую, что разработчики позаботились о том, чтобы максимально усложнить вероятность "кряка" их приложения.
Так что, если хотите совсем по хардкору это дебажить, то берите IDA Pro
Только учтите, что разработчики могли оставить "ловушки" для дебагера.
Katyshin, подозреваю, что приложение распространяется в виде бинарника, где разработчики просто срезают все переданные флаги. В данном случае вам не обойтись без нормальных инструментов для отладки.
Я сейчас как раз допиливаю систему сборки для Node.js приложений, которая делает примерно то же самое (препятствует получению исходников и вмешательству в работу приложения).
К стати, можно сделать так, что нельзя будет дебажить приложение, даже если дебагер запустится.
Inviz Custos, но у разработчиков там наоборот мотивация сделать это рабочим, наврятли они специально это отключили. т.к. в этом суть их приложения, что бы можно было разрабатывать скрипты на базе node.js или c#, вики и форум всячески поддерживают в этом. И вот именно под ноду поломалось, а переходить на c# не хочется из-за этого. А информации об исправлении в новых релизах нет вообще.
Katyshin, у них есть баг-трекер? Если на Ваш взгляд это некорректное поведение приложения и разработчики не должны были делать это намеренно, то, думаю, будет разумно зарепортить им issue
Inviz Custos, да есть, но он тоже упал ) Поэтому небольшим сообществом людей ищем выход из этой ситуации..
А этот способ не могли бы прокомментировать:
Node.js will also start listening for debugging messages if it receives a SIGUSR1 signal. (SIGUSR1 is not available on Windows.) In Node.js 8 and later, it will activate the Inspector API.