Андрей Попов - Windows Script Host для Windows 2000/XP
Активизация отладчика
Активизировать отладчик при работе со сценариями можно несколькими способами.
Во-первых, внутри JScript- или VBScript-сценариев можно вставить специальные операторы (debugger для JScript и Stop для VBScript) и выполнить сценарий с параметром //D. Для примера рассмотрим сценарий ForDebug.js, содержимое которого приведено в листинге П3.1.
Листинг П3.1. JScript-сценарий для отладки в Microsoft Script Debugger/*******************************************************************/
/* РРјСЏ: ForDebug.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                  */
/* Описание: Сценарий для отладки в Microsoft Script Debugger     */
/*******************************************************************/
var s;
function MyFunc() {
 WScript.Echo("Функция MyFunc()");
}
WScript.Echo("Рто сообщение выведется РґРѕ запуска отладчика");
debugger;
s="A это сообщение появится ";
s+="уже в отладчике";
WScript.Echo(s);
MyFunc();
/************* Конец *********************************************/
Запустим этот сценарий из командной строки следующим образом:
wscript.exe //D ForDebug.js
РўРѕРіРґР° сначала нам будет выведено диалоговое РѕРєРЅРѕ СЃРѕ строкой "Рто сообщение выведется РґРѕ запуска отладчика", Р° после нажатия РІ этом РѕРєРЅРµ РєРЅРѕРїРєРё OK запустится отладчик, Рё управление передастся ему (СЂРёСЃ. Рџ3.27). Далее выполнения сценария может производиться РІ отладчике (СЃРј. следующий раздел).
ЗамечаниеФайл со сценарием в отладчике доступен только для чтения.
Рис. П3.27. Активизация отладчика с помощью параметра //D и специальных операторов
Второй путь активизации отладчика состоит в использовании параметра //X при выполнении сценария:
wscript.exe //X ForDebug.js
При этом отладчик запускается сразу, с первой строки сценария (рис. П3.28).
Рис. П3.28. Активизация отладчика с помощью параметра //Х
Режим отладки WS-файлов зависит от значения атрибута debug в инструкции <?job?> (см. главу 3).Для примера рассмотрим WS-файл ForDebug.wsf, содержимое которого приведено в листинге П3.2.
Листинг П3.2. WS-файл для отладки в Microsoft Script Debugger<job id="Encoded">
В <?job debug="true"?>
В <runtime>
В В <description>
В В РРјСЏ: ForDebug.wsf
 Описание: WS-файл для отладки в Microsoft Script Debugger
В </description>
В </runtime>
В <script language="JScript">
В WScript.Echo("Рто сообщение выведется РґРѕ запуска отладчика");
В debugger;
 WScript.Echo("А это сообщение появится уже в отладчике");
В </script>
</job>
Так как значение атрибута debug равно true, то оператор debugger передаст управление отладчику, причем, в отличие от одиночного сценария, WS-файл можно запускать как с ключами //D или //X, так и без них.
Если же изменить в сценарии ForDebug.wsf инструкцию <?job?> следующим образом:
<?job debug="false"?>
то отладка будет отключена, причем независимо от использования ключей //D и //X при запуске сценария (это может понадобиться при эксплуатировании в рабочем режиме WS-файла, содержащего операторы debug или Stop).
Команды отладчика
Команды, имеющиеся в Microsoft Script Debugger, позволяют выполнять трассировку сценариев, просматривать список вызванных процедур или функций, анализировать и изменять значения переменных.
Установка и удаление точек прерывания
Для того чтобы установить точку прерывания в определенной строке сценария, нужно поместить курсор в эту строку и нажать <F9> или выбрать пункт меню Debug|Toggle Breakpoint. Строки с точками прерывания будут отмечены красными точками около левой границы окна отладчика. При достижении точки прерывания отладчик останавливает исполнение сценария.
Для удаления одной точки прерывания необходимо поместить курсор в нужную строку и вновь нажать <F9> или выбрать пункт меню Debug|Toggle Breakpoint. Если нужно убрать все точки прерывания, то можно воспользоваться командой меню Debug|Clear All Breakpoints.
Выполнение сценария
Открытый в отладчике сценарий может выполняться в разных режимах с помощью соответствующих команд меню Debug.
С помощью команды Debug|Run (или нажатия клавиши <F5) можно выполнить все операторы сценария до первой точки прерывания.
Для того чтобы выполнить только один оператор (режим пошагового выполнения), нужно выбрать команду Debug|Step Into или нажать <F8>. Следующий исполняемый оператор при этом будет помечен стрелкой около левой границы окна отладчика.
Если в режиме пошагового выполнения в сценарии встречается вызов определенной пользователем процедуры/функции, то возможны два варианта. Продолжая выполнять команду Debug|Step Into, мы будем останавливаться на каждом операторе внутри процедуры/функции. Для того чтобы, находясь внутри процедуры/функции, не проходить оставшиеся операторы по отдельности, можно выполнить команду Debug|Step Out (или нажать <Ctrl>+<Shift>+<F8>). После этого управление передастся оператору, который стоит в сценарии первым после вызова этой процедуры/функции.