corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Руководство пользователя по отладчику JavaScript

Отладчик JavaScript в среде NetBeans предоставляет набор средств, упрощающих процессы проверки и изменения кода JavaScript, а также наблюдения за ним. Отладчик можно использовать для определения ошибок или для выполнения и анализа состояния приложения в любой момент времени. Также в распоряжении пользователя имеются многочисленные окна отладки, предоставляющие интуитивный интерфейс для просмотра значений переменных, выражений, потоков выполнения, сеансов, точек останова и т.п.

Работа с отладчиком JavaScript в среде NetBeans предполагает наличие у пользователя общего опыта работы с приложениями Firefox и Internet Explorer. Поддержка отладчика для FireFox основана на Firebug, а для Internet Explorer – на платформе отладчика Active Scripting.

Содержание

Содержимое на этой странице относится к среде IDE NetBeans 6.5

Для работы с этим руководством требуется программное обеспечение и ресурсы, перечисленные ниже.

Программное обеспечение или ресурс Требуемая версия
Среда IDE NetBeans Java, PHP или Ruby, версия 6.5
Комплект для разработчика на языке Java (JDK) версия 5 или выше
Расширение среды NetBeans для Firefox или IE (автоустановка) версия 0.6
Надстройка Firebug для Firefox (автоустановка)
или
Платформа отладчика Active Scripting для IE
версия 1.2
 
v1.0a

Примечания:

  • Надстройка Firebug и расширения NetBeans включены в среду IDE. При первом запуске отладчика в среде IDE выполняется проверка и установка надстройки и расширений в обозревателе. При использовании Internet Explorer в среде IDE выводится запрос на загрузку и установку платформы отладчика Active Scripting.
  • Отладчик JavaScript в среде NetBeans совместим с версиями 6 и 7 Internet Explorer и версиями 2.0.0.x и 3 Firefox.
  • В случае использования Internet Explorer поддержка отладчика включена в Windows XP SP2 и Vista.

Включение и отключение отладчика

По умолчанию в среде IDE отладчик JavaScript отключен. Однако при первом запуске отладчика в среде IDE появится диалоговое окно, в котором можно включить поддержку отладчика в обозревателе.

Включить или отключить поддержку отладчика можно в любое время в окне "Project Properties".

  1. В окне "Projects" щелкните проект правой кнопкой мыши и выберите "Properties".
  2. В диалоговом окне "Project Properties" выберите категорию "Debug".
  3. Установите параметр Debug Web Application (Client side JavaScript).
  4. Выберите обозреватель, который планируется использовать (Firefox или Internet Explorer).
    Окно "Project Properties": отображение параметров отладчика JavaScript
  5. Для закрытия окна нажмите кнопку "OK".

Примечание: Можно одновременно запустить отладчик на стороне сервера и отладчик на стороне клиента. Существует возможность переключения между сеансами отладки с использованием окна "Sessions". Если запущены оба сеанса, при необходимости завершения этих сеансов на панели инструментов отладчика необходимо нажать кнопку "Finish Session" (кнопка "Finish Session") для каждого запущенного сеанса.


Первый запуск отладчика

При первом запуске отладчика в среде IDE сначала выполняется проверка наличия соответствующих ресурсов и расширений обозревателя.

Internet Explorer

  1. Для запуска отладчика щелкните правой кнопкой мыши проект в окне "Projects" и выберите "Debug".
  2. В появившемся диалоговом окне установите параметр Server side Java with client side JavaScript in the selected browser. Затем выберите "Internet Explorer".
    Диалоговое окно с параметрами отладки – на стороне сервера и/или на стороне клиента

    Примечание: Поддержку отладчика на стороне клиента или на стороне сервера также можно отключить на более позднем этапе в диалоговом окне "Properties" проекта (в окне "Projects" щелкните правой кнопкой мыши узел проекта и выберите "Properties"). См. Включение и отключение отладчика.

  3. Нажмите кнопку "Debug". При выборе для Internet Explorer параметра отладки на стороне клиента и нажатии кнопки "Debug" в среде IDE сначала выполняется проверка наличия установленной платформы отладчика Active Scripting. Если она не установлена, выводится запрос на загрузку и установку этой платформы.
    Диалоговое окно с запросом на установку платформы отладчика Active Scripting
    В обозревателе отображается веб-сайт Microsoft, откуда можно загрузить платформу. Загрузите и установите платформу.
  4. После получения подтверждения об успешном завершении установки платформы отладчика Active Scripting вернитесь в среду IDE и нажмите кнопку "OK". В среде IDE выполняется проверка наличия зарегистрированного расширения Internet Explorer для NetBeans в обозревателе. Если зарегистрированное расширение не найдено, появится диалоговое окно с запросом на установку в среде IDE расширения NetBeans Internet Explorer.
  5. Нажмите кнопку "OK". В среде IDE будет выполнена регистрация расширения в обозревателе. Затем будет запущен сеанс отладки, и в обозревателе появится страница приветствия того приложения, для которого он запущен.
  6. Вернитесь в среду IDE. Над редактором отображается панель инструментов отладчика. При приостановке кода все значки панели инструментов активируются. В редакторе IDE открывается страница-указатель проекта.

    По умолчанию в нижней области IDE активированы несколько окон, в т.ч. окна Watches, Local Variables и Call Stack. Консоль отладки первоначально отображается в окне "Output" с указанием на то, что сеанс отладки начат. Консоль отладки может использоваться в течение сеанса отладки для просмотра ошибок анализа, выданных исключений и другой информации.
    Окно "Output" с отображением консоли отладчика

Firefox

  1. Для запуска отладчика щелкните правой кнопкой мыши проект в окне "Projects" и выберите "Debug".
  2. В появившемся диалоговом окне установите параметр Server side Java with client side JavaScript in the selected browser. Затем выберите "Firefox".
    Диалоговое окно с параметрами отладки – на стороне сервера и/или на стороне клиента

    Примечание: Поддержку отладчика на стороне клиента или на стороне сервера также можно отключить на более позднем этапе в диалоговом окне "Properties" проекта (в окне "Projects" щелкните правой кнопкой мыши узел проекта и выберите "Properties"). См. Включение и отключение отладчика.

  3. Нажмите кнопку "Debug". При выборе для Internet Explorer параметра отладки на стороне клиента и нажатии кнопки "Debug" в среде IDE сначала выполняется проверка наличия установленной надстройки Firebug и расширения Firefox NetBeans. Если они не были установлены, в среде IDE будет выведен запрос на их установку.
    Диалоговое окно с уведомлением о необходимости установки дополнительных надстроек для Firefox

    Перед тем, как нажать кнопку "ОК", убедитесь, что работа Firefox завершена. В противном случае надстройка и расширение не будут активированы в обозревателе, и потребуется перезапустить обозреватель вручную, а затем повторно запустить отладчик.

  4. Нажмите кнопку "OK". Будут установлены оба компонента, и запустится обозреватель, отображающий страницу приветствия того приложения, для которого выполняется сеанс отладки.

    После успешного завершения установки Firebug и расширения NetBeans Firefox в нижнем правом углу обозревателя Firefox появятся соответствующие значки:
    • Firebug: Значок Firebug
    • Расширение NetBeans Firefox: Значок расширения NetBeans Firefox

    Если щелчкнуть значок расширения NetBeans Firefox, то будет выведено диалоговое окно, содержащее подробные сведения о расширении.

    Диалоговое окно с подробными сведениями о расширении NetBeans Firefox
  5. Вернитесь в среду IDE. Над редактором отображается панель инструментов отладчика. При приостановке кода все значки панели инструментов активируются. В редакторе среды IDE открывается страница-указатель проекта (index.html).

    По умолчанию в нижней области среды IDE активированы несколько окон, в том числе окна Watches, Local Variables и Call Stack. Консоль отладки первоначально отображается в окне "Output" с указанием на то, что сеанс отладки начат. Консоль отладки может использоваться в течение сеанса отладки для просмотра ошибок анализа, выданных исключений и другой информации.
    Окно "Output" с отображением консоли отладчика

Запуск отладчика

Сеанс отладки можно запустить для проекта в целом или для отдельного файла. Если имеется подключение к Интернету, в отладчике также можно указать любой активный URL-адрес для проверки общедоступных ресурсов JavaScript.

Отладка проекта

Отладчик JavaScript можно запустить для всего проекта.

  1. Щелкните правой кнопкой мыши узел проекта в окне "Projects" и выберите "Debug". Если отладчик не приостановлен, в редакторе откроется файл index.html.

Примечание: Если проект, подлежащий отладке, установлен как главный проект, в главном меню среды IDE можно выбрать "Debug > Debug Main Project" или щелкнуть значок "Debug Project" (значок "Debug Project") на основной панели инструментов. Для настройки главного проекта щелкните правой кнопкой мыши проект, который требуется настроить, и выберите "Set as Main Project".

Отладка файла

Отладчик можно запустить для отдельного файла, например для файла HTML или JSP.

  1. Щелкните правой кнопкой мыши файл в окне "Projects" и выберите "Debug File". Аналогично можно выбрать "Debug > Debug File" в главном меню среды IDE. Если отладчик не приостановлен, в редакторе откроется файл, подлежащий отладке.

Отладка внешнего исходного кода

При наличии подключения к Интернету можно указать для отладчика внешний URL-адрес. Это позволяет просматривать и проверять код JavaScript, включенный в общедоступные страницы.

  1. В главном меню среды IDE выберите "Debug > Attach Debugger".
  2. В диалоговом окне "Attach Debugger" из раскрывающего списка "Debugger" выберите "Web Page Debugger" (JavaScript).
  3. Введите URL-адрес страницы, для которой требуется отладка, затем нажмите кнопку "OK".

    Диалоговое окно "Attach Debugger" с примером URL-адреса

При отладке внешнего исходного кода для просмотра URL-адресов для всех используемых ресурсов можно вызвать окно "Sources". Для последовательного выполнения и построчной проверки кода можно также использовать редактор и панель инструментов.


Работа с панелью инструментов и редактором

Редактор позволяет просматривать содержимое файлов. Использование редактора и панели инструментов отладчика при отладке обеспечивает пошаговое выполнение кода и возможность просмотра влияния содержимого файлов на то, что происходит в обозревателе.

Примечание: Страницы, созданные с использованием технологий написания сценария на стороне сервера, например ASP, JSP, PHP и Ruby, могут быть визуализированы только для чтения ([r/o], как указано на вкладке файла, открытого в редакторе). На основе сценариев на стороне сервера выполняется динамическая подготовка содержимого файлов для отображения в обозревателе клиента. С помощью редактора среды IDE эти файлы выводятся на экран в соответствии с содержимым кэша обозревателя.

Использование панели инструментов отладчика

При запуске сеанса над редактором отладки отображается панель инструментов отладчика. В зависимости от того, установлен ли для отладчика параметр перехода в приостановленное состояние при определенных условиях (параметры отладки можно установить в окне "Options"; см. Настройка отладчика), панель инструментов является активной или находится в состоянии ожидания.

Активное состояние: Панель инструментов отладчика в активном состоянии
Сеанс отладки является активным, при этом в окнах отладки отображаются различные данные в зависимости от состояния файлов и сценариев, загруженных в обозреватель. Для перевода отладчика в приостановленное состояние можно нажать кнопку "Pause" при следующем вызове JavaScript.
Приостановленное состояние: Панель инструментов отладчика в приостановленном состоянии
Сеанс отладки приостановлен. При остановке отладки на определенном месте в файле в редакторе эта строка указывается на зеленом фоне и сопровождается значком со стрелкой (Значок со стрелкой) в левом поле. Для перемещения по коду можно использовать панель инструментов.

Панель инструментов предоставляет возможности выполнения следующих действий:

Finish Session (Кнопка "Finish Debugging Session") Завершение сеанса отладки
Pause (Кнопка "Pause button") Приостановка сеанса отладки
Resume (Кнопка "Resume") Возобновление сеанса отладки
Step over (Кнопка "Step Over") Переход к следующему оператору выполнения
Step Into (Кнопка "Step Into") Переход к вызову функции
Step out (Кнопка "Step Out") Выход из текущего состояния вызова функции
Run to Cursor (Кнопка "Run to Cursor") Запуск выполнения с позиции курсора

Примечание: При наличии нескольких операторов JavaScript в одной строке выбор действия "Step Over" в Internet Explorer приведет к переходу к следующему оператору в пределах этой строки. В случае FireFox будут выполнены все операторы в этой строке, после чего отладчик переместится на следующую строку.

Установка точек останова

Точки останова, установленные в файлах, указывают позицию, в которой отладчик должен прервать выполнение кода. Точки останова можно установить в файлах HTML и JavaScript. Также можно установить точки останова в коде JavaScript любого файла, предназначенного только для чтения ([r/o]), который в среде IDE вызван из кэша обозревателя.

Для установки точки останова щелкните в левом поле редактора строку, в которой необходимо установить эту точку.

Установка в редакторе точка останова

Для удаления точки останова можно щелкнуть значок точки останова (Значок точки останова).

Также можно временно отключить точки останова. Для этого щелкните правой кнопкой мыши значок точки останова и выберите "Breakpoint > ✓ Enabled". Точка останова переходит в отключенное состояние, на что указывает серый значок (Значок точки останова) в левой части экрана.

Если отладчик во время работы достигает точки останова, отладка приостанавливается, что позволяет просмотреть значения в окнах отладки и перейти к любому месту кода после точки останова.

Приостановка отладчика в точке останова

Также можно настроить точки останова путем установки счетчика совпадений и/или условного выражения для остановки отладчика в точке останова только в том случае, если достигнуто определенное количество совпадений или условное выражение имеет истинное значение. Указания по настройке точек останова также приводятся далее, после раздела Окно "Breakpoints". Для настройки точки останова щелкните правой кнопкой мыши значок точки останова в левом поле редактора и выберите "Breakpoint" (или "Disabled Breakpoint") > "Properties".

Отключение точки останова в редакторе

Просмотр всплывающих подсказок

При приостановке отладчика во время сеанса отладки для отображения всплывающей подсказки в редакторе следует навести указатель мыши на идентификатор JavaScript. Если идентификатор действителен в выбранном окне стека вызовов, отображается его значение. Можно также выбрать выражения JavaScript. Значение выражения отображается во всплывающей подсказке.

Отображение всплывающих подсказок в редакторе

Просмотр окон отладки

В среде IDE представлено множество окон, являющихся неотъемлемой частью отладчика JavaScript. При запуске сеанса отладки окна отладки позволяют отслеживать значения переменных и выражений по мере последовательного выполнения кода, просматривать стек вызовов потока выполнения, проверять URL-адрес исходного кода и переключаться между сеансами при выполнении параллельных сеансов отладки.

Все окна отладки можно вызвать из среды IDE путем выбора "Window > Debugging". После активации сеанса отладки можно перейти в окна отладки.

Вызов меню отладчика из главного меню среды IDE

Окно "Sessions"

В окне "Sessions" отображаются сеансы отладки, активные в настоящий момент. При запуске сеанса отладки JavaScript запись для отладчика JavaScript можно просмотреть в окне "Sessions".

В среде IDE NetBeans также возможен запуск нескольких сеансов отладки одновременно. Например, в случае работы с проектом на основе Java и выборе для отладчика параметров работы как на стороне клиента, так и на стороне сервера в окне "Sessions" можно увидеть в списке два сеанса.

Текущий сеанс (т.е. сеанс, которым можно управлять с использованием панели инструментов отладчика) отмечен рельефным значком (Значок текущего сеанса). Для переключения сеансов можно дважды щелкнуть сеанс, который должен стать текущим, или щелкнуть правой кнопкой мыши сеанс и выбрать "Make Current".

Для завершения сеанса можно также щелкнуть правой кнопкой мыши всплывающее окно (щелкните правой кнопкой мыши и выберите "Finish") или переключиться между отладкой текущего потока выполнения и остальных потоков выполнения в рамках сеанса (щелкните правой кнопкой мыши и выберите "Scope > Debug All Threads" или "Debug Current Thread").

Окно "Local Variables"

При приостановке отладчика в окне "Local Variables" отображаются локальные переменные текущего объекта window для выбранного окна стека вызовов. Здесь показаны два основных узла:

  • scope: область вызова функций для текущего окна. Все свойства в списке представляют собой переменные, которые можно выбрать из текущей области.
  • this: значение this ключевого слова для текущего окна. Все свойства в списке являются ссылкой на this.

scope и this являются терминами синтаксиса JavaScript, и должны быть правильно интерпретированы для возможности использования окна "Local Variables". Для получения подробных сведений см. следующие статьи относительно this и scope.

Узел области всегда раскрыт. Помимо локальных переменных и параметров вызова функций, связанных с выбранным окном стека вызовов, отображаются следующие дополнительные узлы:

  • arguments: действительные аргументы в противоположность объявленным формальным параметрам;
  • arguments.length: количество действительных аргументов, переданных в функцию;
  • arguments.callee.length: ожидаемое количество аргументов в соответствии с объявлением в подписи функции;
  • parent scope: информация об области действия за пределами области действия вызова текущей функции.

По мере последовательного выполнения кода значения некоторых локальных переменных могут меняться. Такие локальные переменные в окне "Local variables" отображаются полужирным шрифтом.

Также можно щелкнуть непосредственно столбец "Value" и вручную изменить значения переменной.


Примечания:

  • Для пользователей IE вследствие ограничения в интерфейсе API отладчика Active Scripting не всегда возможно определить тип переменной. В таких случаях переменные, отображаемые в окне "Local Variables", указывают на их принадлежность к одному типу {Object}.
  • Для пользователей IE в окне "Local Variables" недоступен узел parent scope.

Окно "Watches"

Окно "Watches" позволяет отслеживать значения определенных выражений при последовательном выполнении кода.

Для добавления средств контроля можно щелкнуть правой кнопкой мыши в окне "Watches" или в редакторе и выбрать из всплывающего меню "New Watch". Для удаления средства контроля щелкните правой кнопкой мыши и выберите из всплывающего меню "Delete".

Диалоговое окно "New Watch"

В редакторе сначала выделите выражение, для которого требуется создать средство контроля, затем щелкните правой кнопкой мыши и выберите "New Watch". Выделенное выражение автоматически добавляется к текстовому полю диалогового окна.

К окну "Watches" можно добавить произвольные выражения JavaScript. Отладчик анализирует наблюдаемое выражение в выбранном окне стека вызовов и в случае успешного результата выводит на экран значение выражения. Выражение может представлять собой переменную (например, переменные из списка в окне "Local Variables") или любое выражение JavaScript, которое может быть проанализировано и имеет значение, соответствующее сеансу отладки.

Окно "Call Stack"

В окне "Call Stack" представлена последовательность вызовов, осуществленных в процессе выполнения. При приостановке отладчика в окне "Call Stack" отображается последовательность вызовов функций (т.е. стек вызовов). При первой приостановке автоматически выделяется самое верхнее окно стека вызовов.

Для выбора окна стека вызовов можно дважды щелкнуть его, а затем просмотреть любую переменную или значения выражения для этого окна в окнах "Local Variables" и "Watches".

Окно "Call Stack" содержит два столбца:

  • Name: имя вызванной функции
  • Resolved Location: URL-адрес, указывающий место вызова функции, в том числе имя файла и номер строки

Для возможности перехода непосредственно к месту вызова щелкните правой кнопкой мыши окно "Call Stack" и выберите "Go to Source".

В редакторе откроется файл, содержащий местоположение окна вызовов, при этом курсор будет установлен на строку, в которой был запущен вызов. В редакторе также предусмотрены функции выделения для окна стека вызовов, например, предыдущие окна стека вызовов отмечаются в левом поле фиолетовым значком (Значок окна стека вызовов) и отображаются на фиолетовом фоне.

Окно "Threads"

В окне "Threads" приводится список всех окон страниц, существующих в сеансе отладки. В JavaScript в каждом окне представлен контекст выполнения. Таким образом, при обработке отладчиком файла, включающего несколько окон, в окне "Threads" отображается структура страницы с представлением каждого окна в качестве отдельного потока выполнения. В окне "Threads" также приводится подробное описание текущего состояния каждого окна и причины приостановки потока выполнения.

Как в случае с другими окнами отладки, для перемещения непосредственно по пути или URL-адресу, указанному в выбранном столбце "Name", можно использовать пункт меню "Go to Source". Щелкните правой кнопкой мыши окно и выберите из всплывающего меню "Go to Source".

Окно "Sources"

В окне "Sources" отображаются все файлы и сценарии, загруженные для сеанса отладки. Они перечислены в порядке их загрузки обозревателем. Для файлов JavaScript проекта в отладчике отображается путь к файлу на компьютере. Для удаленных ресурсов отображается URL-адрес файла. Как в случае с другими окнами отладки, для непосредственного перемещения по выбранному пути можно использовать пункт меню "Go to Source". Щелкните правой кнопкой мыши исходный файл и выберите из всплывающего меню "Go to Source". Файл откроется в редакторе для просмотра.

При работе с локальными файлами в окне "Sources" отображаются различия между фактическим исходным файлом и выделенным исходным файлом, содержащимся в кэш-памяти обозревателя. Файл, содержащийся в кэш-памяти обозревателя, можно просмотреть путем выбора "Go to Client Source". Файл откроется в редакторе в формате, доступном только для чтения.

Окно "Breakpoints"

Для просмотра всех точек останова, установленных в среде IDE, можно использовать окно "Breakpoints".

В окне "Breakpoints" можно включать или отключать отдельные точки останова путем выбора соответствующего параметра под столбцом "Enabled". Для настройки точек останова также можно щелкнуть правой кнопкой мыши точку останова и выбрать "Customize". Средство настройки точек останова позволяет установить счетчик совпадений и/или условное выражение.

Средство настройки точек останова

Можно указать такое условие для счетчика совпадений, при котором отладчик остановится по достижении определенного значения счетчика, либо при достижении или превышении данного значения, либо при достижении значения, кратного данному.

Если указано условное выражение, отладчик останавливается в точке останова только в том случае, если выражение имеет значение true. Аналогичным образом, если указано и условное выражение, и счетчик совпадений, точка останова может быть распознана только в том случае, если оба параметра имеют значение true. Для определения отрицания условия можно использовать ! (condition). Настроенная точка останова отмечается значком Значок настроенной точки останова в окне "Breakpoints" и левом поле редактора.


Настройка отладчика

В среде IDE NetBeans имеется возможность настройки отладчика JavaScript. Можно отрегулировать способ поведения отладчика с использованием вариантов, доступных на панели JavaScript окна "Options" в среде IDE. Для открытия окна "Options" в главном меню выберите "Tools > Options" ("NetBeans > Preferences on Mac"). Затем выберите "Miscellaneous > JavaScript".

Окно "Options" с отображением вариантов настройки отладчика

Можно использовать следующие параметры настройки отладчика:

  • Suspend on Debugger Keyword: приостановка отладчика путем ввода оператора debugger; в код JavaScript.
  • Suspend on Errors: приостановка отладчика при возникновении любых ошибок JavaScript.
  • Suspend on Exceptions: приостановка отладчика при обнаружении любых исключений JavaScript. При использовании Internet Explorer работа отладчика приостанавливается, как в случае точки останова, однако при этом устанавливается состояние EXCEPTION. Фактическое сообщение исключения отображается в консоли для текущего сеанса отладки. Исключения для Firefox приводятся в списке в окне "Local Variables" с подробным выходным сообщением под столбцом "Values".
  • Suspend on First Line: приостановка отладчика на первой строке файла, включенного в сеанс отладки. Для пользователей IE работа отладчика прерывается на первом операторе JavaScript, подлежащем выполнению. Для пользователей FireFox работа прерывается на первой строке кода JavaScript.
  • Show Constants: указание необходимости отображения констант и их значений в окне "Local Variables" (при этом постоянные значения могут заполнить окно).
  • Show Functions: указание необходимости отображения функций в столбце "Value" окна "Local Variables" (в этом случае функции могут заполнить окно).
  • Ignore Query Strings: указание необходимости игнорирования строк запроса URL-адреса для точек останова. В том случае, если точка останова установлена в строке в http://www.foo.com, отладчик будет приостановлен, если указан запрашиваемый URL-адрес http://www.foo.com?search=34. Этот параметр рекомендуется установить при динамическом добавлении строк запроса.

Дополнительные сведения

Для получения дополнительных сведений о технологиях Ajax и Java на netbeans.org можно воспользоваться следующими материалами: