549
правок
Изменения
→Подпись скрипта
[[Файл:ScriptDebugger.png]]
'''Отладчик скриптов''' — рабочий инструмент для разработки и диагностики [[Руководство_программиста|скриптов встроенного языка]].
Он позволяет запускать скрипты в режиме отладки, останавливать выполнение на нужных строках, анализировать переменные и подключаться к уже запущенным скриптам.
Вы можете запустить отладчик из:
= Подключение отладчика к работающим скриптам =
Данная возможность позволяет подключить отладчик к скриптам изначально запущеным без него. Для начала работ, отладчик нужно перевести в режим '''ожидания запросов отладки'''. Далее необходимо запустить скрипт стандартным способом. Если в скрипте будет команда AttachDebugger - отладчик это увидит и начнется процесс отладки этого скрипта. Это удобно для отладки скриптов, которые работают в своем контексте:
* [[Печатные формы|Скриптов из печатных форм]]* [[Дополнительные_возможности|Скриптов из системных событий]] * [[Пользовательские_отчеты|Скриптов дополнительных возможностей]]* [[Дополнительные услуги|Скриптов из дополнительных услуг]]
'''Как использовать'''
* В режиме отслеживания может работать только один отладчик.
* Если скрипт исполняется в шедулере или в другом вспомогательном потоке, то подключится к нему не получится. Отладка работает только в текущем потоке приложения.
== Подпись скрипта ==
При одновременной работе нескольких программистов в отладчике возможны ложные перехваты. Чтобы сфокусировать работу отладчика только на определенном скрипте, подпишите его:
AttachDebugger('ЛЮБОЙ ТЕКСТ');
Отладка начнется, только если в редакторе кода строка AttachDebugger совпадает с перехваченным скриптом.
Пример скрипта с подписью:
<source lang="json">
<?>
AttachDebugger('Sergey K. TestScript');
set($a, 10);
set($b, 20);
set($sum, $a + $b);
showmessage($sum);
</source>
= Горячие клавиши =
* Удобно тестировать разные комбинации входных данных.
== Пример 3: Отладка скрипта с работой работы с базой данных ==
'''Задача.''' Проверить правильность выборки и обработки данных из базы. Пример скрипта: