Если вдруг появилась необходимость написать скрипт для сервера сценариев Windows (cscript.exe либо wscript.exe), то скоро вы поймете что отлаживать его в браузере до крайности неудобно.
Отладчик который предлагает Microsoft (microsoft script debugger) - по сути бесполезен, т.к. не позволяет даже отслеживать значение переменных.
Мне удалось выполнить отладку только с помощью Visual Studio.
Для того чтобы запустить отладку даем команду в консоли типа:
F:\JavaScript\>"c:\Windows\system32\cscript.exe" //D //X myscript.js
В результате появится окно запроса, с предложением выбрать отладчик.
У меня на одном из компьютеров по причине, которую я не смог обнаружить, окно запроса отладчика не появлялось. Для такого случая удалось найти интересный выход в книге Inside Windows Debugging
Суть его в том что в начало скрипта добавляется функция типа:
function WaitForDebugger()
{
g_bAttached = true;
while (!g_bAttached);
}
Т.к. условие выхода из цикла не выполняется, скрипт "зависает" и можно подцепить Visual Studio к процессу (Отладка - Присоединиться к процессу, выбрать cscript.exe, нажать Ctrl+Alt+Break), после чего вручную изменить значение переменной на "true" и продолжить отладку. Оговорюсь, что этот способ для Visual Studio Express 2010 у меня не заработал, только в 2013 Professional.
Отладчик который предлагает Microsoft (microsoft script debugger) - по сути бесполезен, т.к. не позволяет даже отслеживать значение переменных.
Мне удалось выполнить отладку только с помощью Visual Studio.
Для того чтобы запустить отладку даем команду в консоли типа:
F:\JavaScript\>"c:\Windows\system32\cscript.exe" //D //X myscript.js
В результате появится окно запроса, с предложением выбрать отладчик.
У меня на одном из компьютеров по причине, которую я не смог обнаружить, окно запроса отладчика не появлялось. Для такого случая удалось найти интересный выход в книге Inside Windows Debugging
Суть его в том что в начало скрипта добавляется функция типа:
function WaitForDebugger()
{
g_bAttached = true;
while (!g_bAttached);
}
Т.к. условие выхода из цикла не выполняется, скрипт "зависает" и можно подцепить Visual Studio к процессу (Отладка - Присоединиться к процессу, выбрать cscript.exe, нажать Ctrl+Alt+Break), после чего вручную изменить значение переменной на "true" и продолжить отладку. Оговорюсь, что этот способ для Visual Studio Express 2010 у меня не заработал, только в 2013 Professional.
Комментариев нет:
Отправить комментарий