JavaScript Debugger — различия между версиями

Материал из DevelopmenOnTheEdge
Перейти к: навигация, поиск
(Новая страница: «<div> <div> <div> <div>Оглавление<br> </div> * Launchers * Подключение к удалённому JavaScript * Run JavaScript (Local)<br> * Debu…»)
 
Строка 1: Строка 1:
<div>
+
=== Замечания ===
<div>
+
Для возможности подключиться удалённым отладчиком к BeanExplorer, необходимо использовать BeanExplorer из ветки js-debug. Данное замечание не относится к отладке через [[BeanExplorer4 JavaScript Debugger#Run JavaScript (Local)|Run JavaScript (Local)]] и [[BeanExplorer4 JavaScript Debugger#Debug JavaScript (Local)|Debug JavaScript (Local)]] (см. ниже).
<div>
+
 
<div>Оглавление<br>
+
=== Launchers ===
</div>
+
BeanExplorer4 использует возможности Eclipse JavaScript Development Tools (JSDT). JSDT предоставляет два типа launcher'а, относящихся к Rhino: Rhino JavaScript и Remote JavaScript.
* Launchers
+
 
* Подключение к удалённому JavaScript
+
* Remote JavaScript - это способ подключения к удалённому запуску JavaScript - предполагается, что на каком-то компьютере запущен JavaScript с отладчиком, который открыл порт для подключения и ждёт, что к нему подключится удалённый отладчик.
* Run JavaScript (Local)<br>
+
* Rhino JavaScript же представляет одновременно запуск и самого скрипта, и удалённого отладчика к нему. Поскольку этот вид launcher'а запускает скрипт Rhino, но не позволяет при этом выбрать то, откуда брать Java классы, он нам бесполезен.
* Debug JavaScript (Local)
+
 
</div>
+
=== Подключение к удалённому JavaScript ===
</div>
+
Remote JavaScript launcher создаётся (как обычно) в "Debug Configurations...". При создании launcher'а необходимо выбрать Connector "Mozilla Rhino - Attaching Connector", ввести host, на котором запущен проект BeanExplorer, и порт 9000 (отладчик на сервере всегда открывает только 9000 порт). После этого можно будет подключиться к отлаживаемой операции, попытавшись открыть её в браузере и запустив ваш launch configuration для подключения.
<br>
+
 
</div>
+
Для того, чтобы BeanExplorer поднял серверную часть отладчика, необходимо, чтобы в таблице systemsettings были следующие строчки:
<div><span style="font-family:georgia,serif"><font size="4">Замечания</font></span><br>
+
Для возможности подключиться удалённым отладчиком к BeanExplorer, необходимо использовать BeanExplorer из ветки js-debug<strike> и в файле /common/makefiles/optional_packages.xml подправить строчки<br>
+
</strike>
+
<div class="sites-codeblock sites-codesnippet-block"><strike><code>    <property name="RHINO_JAR"       value="${COMMONBINDIR}/js.jar"/></code><br>
+
<code>    <!--property name="RHINO_JAR"       value="${COMMONBINDIR}/js17R4.jar"/--></code></strike></div>
+
</div>
+
<div><strike>чтобы было так:<br>
+
</strike>
+
<div class="sites-codeblock sites-codesnippet-block"><strike><code>    <!--property name="RHINO_JAR"       value="${COMMONBINDIR}/js.jar"/--></code><br>
+
<code>    <property name="RHINO_JAR"       value="${COMMONBINDIR}/js17R4.jar"/></code></strike></div>
+
</div>
+
<div>(Fixed 14.05.23)<br>
+
</div>
+
<div>Данное замечание не относится к отладке через Run, Run (Experimental) и Debug (см. ниже).<br>
+
</div>
+
<div><br>
+
<font size="4"><span style="font-family:georgia,serif">Launchers</span></font><br>
+
</div>
+
BeanExplorer4 использует возможности Eclipse JavaScript Development Tools (JSDT). JSDT предоставляет два типа launcher'а, относящихся к Rhino: <span style="color:rgb(68,68,68)">Rhino JavaScript</span> и <span style="color:rgb(191,144,0)">Remote JavaScript</span>.<br>
+
<br>
+
<span style="color:rgb(191,144,0)">Remote JavaScript</span> - это способ подключения к удалённому запуску JavaScript - предполагается, что на каком-то компьютере запущен JavaScript с отладчиком, который открыл порт для подключения и ждёт, что к нему подключится удалённый отладчик.<br>
+
<br>
+
<span style="color:rgb(68,68,68)">Rhino JavaScript</span> же представляет одновременно запуск и самого скрипта, и удалённого отладчика к нему. Поскольку этот вид launcher'а запускает скрипт Rhino, но не позволяет при этом выбрать то, откуда брать Java классы, он нам бесполезен.<br>
+
<div><br>
+
<br>
+
<div><span style="font-family:georgia,serif"><font size="4">Подключение к удалённому JavaScript</font></span><br>
+
</div>
+
<div>Remote JavaScript launcher создаётся (как обычно) в "Debug Configurations...". При создании launcher'а необходимо выбрать Connector "Mozilla Rhino - Attaching Connector", ввести host, на котором запущен проект BeanExplorer, и порт 9000 (отладчик на сервере всегда открывает только 9000 порт). После этого можно будет подключиться к отлаживаемой операции, попытавшись открыть её в браузере и запустив ваш launch configuration для подключения.<br>
+
<br>
+
</div>
+
<div>Для того, чтобы BeanExplorer поднял серверную часть отладчика, необходимо, чтобы в таблице <span style="color:rgb(255,0,0)">systemsettings</span> были следующие строчки:<br>
+
 
* JAVA_SCRIPT_DEBUG_MODE - включение режима отладки (значение TRUE),
 
* JAVA_SCRIPT_DEBUG_MODE - включение режима отладки (значение TRUE),
 
* JAVA_SCRIPT_OPERATION_TO_DEBUG - имя отлаживаемой операции (например, просто "Test"),
 
* JAVA_SCRIPT_OPERATION_TO_DEBUG - имя отлаживаемой операции (например, просто "Test"),
 
* JAVA_SCRIPT_SOURCE_NAME - имя файла с отлаживаемой операцией, так, как оно отображается в Eclipse (например, "/condo_be4/src/js/operations/userRegistrations - Test.js").
 
* JAVA_SCRIPT_SOURCE_NAME - имя файла с отлаживаемой операцией, так, как оно отображается в Eclipse (например, "/condo_be4/src/js/operations/userRegistrations - Test.js").
* JAVA_SCRIPT_METHOD_TO_DEBUG - имя метода для отладки (остальные методы не будут отлаживаться), одно из:       <br>
+
* JAVA_SCRIPT_METHOD_TO_DEBUG - имя метода для отладки (остальные методы не будут отлаживаться), одно из:
 
+
        NOTHING,          // there is no methods to debug
</div>
+
        GET_PARAMETERS,   // getParameters
<div>
+
        INVOKE,           // invoke
<div class="sites-codeblock sites-codesnippet-block"><code>        NOTHING,          // there is no methods to debug</code><br>
+
        GET_REDIRECT_URL, // getRedirectURL
<code>        GET_PARAMETERS,   // getParameters</code><br>
+
        CUSTOM_GENERIC,   // getCustomAction, getCustomEnctype, getCustomMethod
<code>        INVOKE,           // invoke</code><br>
+
        CONTEXT,          // the script itself
<code>        GET_REDIRECT_URL, // getRedirectURL</code><br>
+
<code>        CUSTOM_GENERIC,   // getCustomAction, getCustomEnctype, getCustomMethod</code><br>
+
<code>        CONTEXT,          // the script itself</code></div>
+
Установка этих переменных возможна автоматически, посредством нажатия кнопки "Set Current Operation As Remotely Debugged" на основном тулбаре (при открытом редакторе JavaScript). Отключение режима отладки возможен посредством пункта "BeanExplorer"->"Turn Off Server JavaScript Debugging" основного меню.<br>
+
</div>
+
<div><br>
+
</div>
+
<div><span style="color:rgb(153,153,153)">Known issues:<br>
+
</span>
+
# <strike><span style="color:rgb(153,153,153)">Несмотря на то, что отладчик успешно подключается и позволяет продолжать запуск скрипта, отлаживаемые скрипт не доходит до конца, так что страница с результатом не открывается.</span></strike><span style="color:rgb(153,153,153)"> (Fixed 14.05.22)</span><strike><span style="color:rgb(153,153,153)"><br>
+
</span></strike>
+
# <span style="color:rgb(102,102,102)"><span style="color:rgb(153,153,153)">Может
+
некорректно реагировать на первый breakpoint: в таком случае для того,
+
чтобы увидеть переменные в скрипте, надо поставить хотя бы два
+
breakpoint'а и нажать resume при первой остановке отладчика.</span></span>
+
  
</div>
+
Установка этих переменных возможна автоматически, посредством нажатия кнопки "Set Current Operation As Remotely Debugged" на основном тулбаре (при открытом редакторе JavaScript). Отключение режима отладки возможен посредством пункта "BeanExplorer"->"Turn Off Server JavaScript Debugging" основного меню.
<div><br>
+
</div>
+
<div>Далее рассматриваются способы запуска JavaScript через BeanExplorer4. Кнопки запуска раположены на основном toolbar'е Eclipse при открытом редакторе JavaScript. Причём операции будут запускаться только при условии, если JavaScript редактор открыть из дерева проекта BE4.<br>
+
<br>
+
</div>
+
<font size="4"><span style="font-family:georgia,serif">Run JavaScript (Local)</span></font><br>
+
</div>
+
<div>Запуск JavaScript операции в Eclipse. По завершению операции открывается браузер с результатом выполнения операции. В качестве входных данных операции возможно передавать presetValues и выбранные строки с entity. Метод для запуска, как и параметры, выбирается во view "Operation Parameters".<br>
+
</div>
+
<div><br>
+
</div>
+
<div><span style="color:rgb(153,153,153)">Known issues:<br>
+
</span>
+
# <strike><span style="color:rgb(153,153,153)">Зависает, если текущая операция - отлаживаемая (<span style="color:rgb(255,0,0)">systemsettings</span>).</span></strike><span style="color:rgb(153,153,153)"> (Fixed 14.05.21)</span><strike><span style="color:rgb(153,153,153)"><br>
+
</span></strike>
+
# <span style="color:rgb(102,102,102)"><span style="color:rgb(153,153,153)">Позволяет запускать только getParameters() и invoke(), но не getRedirectURL().</span></span>
+
  
</div>
+
==== Known issues ====
<div><br>
+
* Может некорректно реагировать на первый breakpoint: в таком случае для того, чтобы увидеть переменные в скрипте, надо поставить хотя бы два breakpointи нажать resume при первой остановке отладчика.
<font size="4"><span style="font-family:georgia,serif">Debug JavaScript (Local)</span></font><br>
+
</div>
+
<div>Похоже на Run, но запускает скрипт в режиме отладки и <strike>требует, чтобы были установлены <span style="color:rgb(255,0,0)">systemsettings</span> для отладки, и</strike> (fixed) пытается подсоединиться к запущенному скрипту удалённым отладчиком <strike>через <span style="color:rgb(191,144,0)">launch configuration</span> с именем "BeanExplorer4", коннектором "Mozilla Rhino - Attaching Connector", хостом localhost и портом 9000</strike>.<br>
+
<span style="background-color:rgb(153,153,153)"><br>
+
</span></div>
+
<div><span style="color:rgb(153,153,153)"><span style="background-color:rgb(255,255,255)">Known issues:<br>
+
</span></span></div>
+
<div>
+
# <strike><span style="color:rgb(153,153,153)"><span style="background-color:rgb(255,255,255)">Скрипт не доходит до конца. Для того, чтобы он дошёл до конца (в таком случае откроется браузер с результатом), необходимо самому ещё раз запустить launch configuration с именем "BeanExplorer4" и запустить скрипт дальше (Resume/F8).</span></span></strike><span style="color:rgb(153,153,153)"><span style="background-color:rgb(255,255,255)"> (Fixed 14.05.22)</span></span><strike><span style="color:rgb(153,153,153)"><span style="background-color:rgb(255,255,255)"><br>
+
</span></span></strike>
+
# <span style="color:rgb(102,102,102)"><span style="color:rgb(153,153,153)">Позволяет запускать только getParameters() и invoke(), но не getRedirectURL().</span></span>
+
# <span style="color:rgb(102,102,102)"><span style="color:rgb(153,153,153)"><strike>Нет class loading!!!</strike></span></span><span style="color:rgb(153,153,153)"><span style="background-color:rgb(255,255,255)"> (Fixed 14.05.22)</span></span>
+
  
</div>
+
Далее рассматриваются способы запуска JavaScript через BeanExplorer4. Кнопки запуска раположены на основном toolbar'е Eclipse при открытом редакторе JavaScript. Причём операции будут запускаться только при условии, если JavaScript редактор открыть из дерева проекта BE4.
<div><br>
+
<strike><font size="4"><span style="font-family:georgia,serif">Debug</span></font> </strike>(Удалил эту операцию)<strike><br>
+
</strike></div>
+
<div><strike>Отладка операции в Eclipse. Запускает текущий выбранный скрипт на отладку и подключается к нему удалённым отладчиком. При этом в Eclipse (вручную!) должен быть создан <span style="color:rgb(191,144,0)">launcher</span> для удалённого отладчика с именнем "BeanExplorer4", коннектором "Mozilla Rhino - Attaching Connector", хостом localhost и портом 9000.<br>
+
<span style="background-color:rgb(153,153,153)"><br>
+
</span></strike></div>
+
<div><strike><span style="color:rgb(153,153,153)"><span style="background-color:rgb(255,255,255)">Known issues:<br>
+
</span></span></strike>
+
# <strike><span style="color:rgb(153,153,153)"><span style="background-color:rgb(255,255,255)">В браузере отображается только то, что было распечатано в коде JavaScript.</span></span></strike>
+
# <strike><span style="color:rgb(153,153,153)"><span style="background-color:rgb(255,255,255)">В контексте лежит не всё (entity, parameters, context, out, connector).</span></span></strike>
+
  
 +
=== Run JavaScript (Local) ===
 +
Запуск JavaScript операции в Eclipse. По завершению операции открывается браузер с результатом выполнения операции. В качестве входных данных операции возможно передавать presetValues и выбранные строки с entity. Метод для запуска, как и параметры, выбирается во view "Operation Parameters".
  
 +
==== Known issues ====
 +
* Позволяет запускать только getParameters() и invoke(), но не getRedirectURL().
  
<strike>Замечание: Run (Experimental) и Debug по сути своей одно и то же - они нужны для запуска отладки скрипта. Они отличаются способом настроить запуск и своими багами. Когда нормально доделаю отладку, будет только одна из этих команд. <span style="color:rgb(103,78,167)">Update: теперь уже понятно, какая из них.</span></strike>
+
=== Debug JavaScript (Local) ===
 +
Похоже на Run, но запускает скрипт в режиме отладки и пытается подсоединиться к запущенному скрипту удалённым отладчиком (при этом автоматически создаётся launch configuration с именем "BeanExplorer4", коннектором "Mozilla Rhino - Attaching Connector", хостом localhost и портом 9000).
  
</div>
+
==== Known issues ====
<div><br>
+
* Позволяет запускать только getParameters() и invoke(), но не getRedirectURL().
<div>
+
<div>
+
<div>
+
<div></div>
+
</div>
+
</div>
+
</div>
+
</div>
+

Версия 16:36, 22 августа 2014

Замечания

Для возможности подключиться удалённым отладчиком к BeanExplorer, необходимо использовать BeanExplorer из ветки js-debug. Данное замечание не относится к отладке через Run JavaScript (Local) и Debug JavaScript (Local) (см. ниже).

Launchers

BeanExplorer4 использует возможности Eclipse JavaScript Development Tools (JSDT). JSDT предоставляет два типа launcher'а, относящихся к Rhino: Rhino JavaScript и Remote JavaScript.

  • Remote JavaScript - это способ подключения к удалённому запуску JavaScript - предполагается, что на каком-то компьютере запущен JavaScript с отладчиком, который открыл порт для подключения и ждёт, что к нему подключится удалённый отладчик.
  • Rhino JavaScript же представляет одновременно запуск и самого скрипта, и удалённого отладчика к нему. Поскольку этот вид launcher'а запускает скрипт Rhino, но не позволяет при этом выбрать то, откуда брать Java классы, он нам бесполезен.

Подключение к удалённому JavaScript

Remote JavaScript launcher создаётся (как обычно) в "Debug Configurations...". При создании launcher'а необходимо выбрать Connector "Mozilla Rhino - Attaching Connector", ввести host, на котором запущен проект BeanExplorer, и порт 9000 (отладчик на сервере всегда открывает только 9000 порт). После этого можно будет подключиться к отлаживаемой операции, попытавшись открыть её в браузере и запустив ваш launch configuration для подключения.

Для того, чтобы BeanExplorer поднял серверную часть отладчика, необходимо, чтобы в таблице systemsettings были следующие строчки:

  • JAVA_SCRIPT_DEBUG_MODE - включение режима отладки (значение TRUE),
  • JAVA_SCRIPT_OPERATION_TO_DEBUG - имя отлаживаемой операции (например, просто "Test"),
  • JAVA_SCRIPT_SOURCE_NAME - имя файла с отлаживаемой операцией, так, как оно отображается в Eclipse (например, "/condo_be4/src/js/operations/userRegistrations - Test.js").
  • JAVA_SCRIPT_METHOD_TO_DEBUG - имя метода для отладки (остальные методы не будут отлаживаться), одно из:
        NOTHING,          // there is no methods to debug
        GET_PARAMETERS,   // getParameters
        INVOKE,           // invoke
        GET_REDIRECT_URL, // getRedirectURL
        CUSTOM_GENERIC,   // getCustomAction, getCustomEnctype, getCustomMethod
        CONTEXT,          // the script itself

Установка этих переменных возможна автоматически, посредством нажатия кнопки "Set Current Operation As Remotely Debugged" на основном тулбаре (при открытом редакторе JavaScript). Отключение режима отладки возможен посредством пункта "BeanExplorer"->"Turn Off Server JavaScript Debugging" основного меню.

Known issues

  • Может некорректно реагировать на первый breakpoint: в таком случае для того, чтобы увидеть переменные в скрипте, надо поставить хотя бы два breakpoint'а и нажать resume при первой остановке отладчика.

Далее рассматриваются способы запуска JavaScript через BeanExplorer4. Кнопки запуска раположены на основном toolbar'е Eclipse при открытом редакторе JavaScript. Причём операции будут запускаться только при условии, если JavaScript редактор открыть из дерева проекта BE4.

Run JavaScript (Local)

Запуск JavaScript операции в Eclipse. По завершению операции открывается браузер с результатом выполнения операции. В качестве входных данных операции возможно передавать presetValues и выбранные строки с entity. Метод для запуска, как и параметры, выбирается во view "Operation Parameters".

Known issues

  • Позволяет запускать только getParameters() и invoke(), но не getRedirectURL().

Debug JavaScript (Local)

Похоже на Run, но запускает скрипт в режиме отладки и пытается подсоединиться к запущенному скрипту удалённым отладчиком (при этом автоматически создаётся launch configuration с именем "BeanExplorer4", коннектором "Mozilla Rhino - Attaching Connector", хостом localhost и портом 9000).

Known issues

  • Позволяет запускать только getParameters() и invoke(), но не getRedirectURL().