понедельник, 21 октября 2013 г.

Отладка cscript + javascript

Если вдруг появилась необходимость написать скрипт для сервера сценариев 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.

Комментариев нет:

Отправить комментарий