@feratea Screenshot_2.png
В каждой функции в большинстве случаев есть такой раздел с инструкцией по использованию.
Вам следует прочитать его, чтобы знать, как пользоваться.
Отладка
-
Добрый день. Как вы производите отладку сложных скриптов?
Написал большой скрипт в многопотоке и в процессе работы происходит зависание, но в логах ничего не пишется и по времени выполнения каждого блока тоже не удается отследить, так как все вылетает. Как можно отследить где все слетает не добавляя лишних записей в ЛОГ и блоков проверок? Может Bas куда-то системные логи пишет?Спасибо!
-
Добрый день. Как вы производите отладку сложных скриптов?
Написал большой скрипт в многопотоке и в процессе работы происходит зависание, но в логах ничего не пишется и по времени выполнения каждого блока тоже не удается отследить, так как все вылетает. Как можно отследить где все слетает не добавляя лишних записей в ЛОГ и блоков проверок? Может Bas куда-то системные логи пишет?Спасибо!
BAS пишет системные логи (например для ноды), но отладить скрипт с их помощью вы не сможете. Опытный кодер изначально продумывает ситуации, которые могут привести в зависанию, например бесконечный цикл ожидания без задержки может вызвать зависание интерфейса.
в теме лайфхаков на подобный случай есть пост:
@antonio said in Лайфхаки BAS:function _sa(id) { log(id) ScriptWorker.SetCurrentAction(id) }После этого когда в лог начинают выводиться id всех выполняемых действий. Потом можно однозначно прочесть последовательность всего произошедшего. Помогало мне жесткие баги отлавливать.
Лучше включать только для дебага! (если действий много в скрипте).@romanbiz, я так понимаю, что это твой пункт 6 "по-умному".
Но такая отладка устарела, так как функция перестанет выводить в лог информацию после действий с браузером и ряда других стандартных действий. Так что самым продуктивным и простым способом остаётся вывод в лог технических данных (логическое место в скрипте, данные из переменных и т.п.)
-
За все время ловил вылеты BAS в многопотоке только в 2 случаях:
1)Бесконечный цикл. Нужна задержка.
2)Не созданная переменная. При краше в лог BAS в видимую часть просто не успевало писать, что переменная не создана. Пришлось лезть в логи где хранит сам бот.