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