@nirvanius said in Условие if при выполнении закрывает BAS:
А @Daniel прав - такое поведение в 99% показывает на бесконечный цикл...
сам по себе бесконечный цикл - не проблема, а проблема в таймингах. Но гадать без скрипта смысла не вижу
Здравствуйте,
Есть пару проектов разных и они иногда вылетают.
Бас везде обновлен до последней версии.
Скомпилированная или в проекте программа просто закрывается без какой либо ошибки.
Поставил приблуду которая следит за процессом и перезапускает проект но это не дело.
Как я могу понять где именно крашится прога? есть ли какой то дебаг версия в которой можно запустить проект и отследить ошибку?
Спасибо!
@mocard said in Вылетает BAS:
Здравствуйте,
Есть пару проектов разных и они иногда вылетают.
Бас везде обновлен до последней версии.
Скомпилированная или в проекте программа просто закрывается без какой либо ошибки.
Поставил приблуду которая следит за процессом и перезапускает проект но это не дело.
Как я могу понять где именно крашится прога? есть ли какой то дебаг версия в которой можно запустить проект и отследить ошибку?
Спасибо!
Вангую: У вас стоит тип запуска "Повторять"
Так особый имеет ограничения по выполнению и когда ставлю большое число всеравно автоматом ставится повторять.
Да и у меня в потоках вечный цикл в нутри стоит. То есть поток повторяется только тогда когда ошибка в нутри цикла.
Неужели это и есть решение? Будут еще советы?
@mocard said in Вылетает BAS:
Да! Повторять!
BAS вылетает из за бесконечных или очень больших циклов без задержки. Добавьте первым действием в проект "Сон" на одну секунду и увидите в чём проблема
@Dodok said in Вылетает BAS:
@mocard А надо особый, и 99999
Зачем?
@mocard said in Вылетает BAS:
Задержки есть! Яж говорю что крайне иногда закрывается.
Я отталкиваюсь от информации, которую вы предоставили. Повторюсь, интерфейс BAS зависает из за очень больших или бесконечных циклов, тип запуска "Повторять" тоже по сути бесконечный цикл. В результате у вас может возникнуть какая нибудь ошибка в логике скрипта, которая без задержки будет завершать поток, а BAS его снова запускать. А зависшее приложение операционная система может завершить автоматически сама.
Можете использовать лайфхак, создайте первым действием в скрипте действие "Выполнить код" с кодом:
_sa = function(id)
{
log(id)
ScriptWorker.SetCurrentAction(id)
}
А затем, после вылета откройте логи и увидите выполнение каких действий привело к вылету