Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: поиск бага при зацикленной работе
Basilvg
Отправлено: 07 Февраля, 2020 - 13:18:56
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2020  
Репутация: 0




Добрый день коллеги и спасибо разработчику
за программу - лучшее найденное решение под мои задачи.

Вопрос:

написал скрипт, сделал отладку (кибор по кругу гоняет документы через специальный редактор), но, после нескольких кругов происходит вылет а именно

кибор+редактр стоят на втором компе (сервер) там и сделал отладку под экран и прочее (в управляющем алгоритме есть и координаты есть и картинки), все собирал в визуальном редакторе. Также, для надежности, после start стоит обработчик, определяющий открыт ли редактор документов (по картинке) если его нет то перезапускается (а по завершению цикла по goto a все идет на начало.

оставляю на ночь (выключаю монитор) и сбой происходит иногда после 15 иногда после 200 документов. Интересночто включив утром монитор вижу, что редактор закрыт а кибор мышку не шевелит. Нажав ctrl-chift-z скрипт работу прекращает (использую скомпилированный exe)

при этом все таймеры энергосбережения выключены, режимов засыпания ни на одном устройстве нет, отладку уже сделал и все видимые баги пофиксил. Пытался играть паузами до после, на 500 мс все сильно устойчивей но в целом сбои ночью как были так и есть.

Вот сижу, смотрю как работает, все нормально. Ставлю на ночь и утром застаю зарытый редактор, запущенный скрипт и стоящий на месте курсор.

Подскажите пожалуйста, как, не тратя часы на визуальный поиск точки и причины сбоя, это можно устранить?

Может идеи по логированию или логики обработки таких зависаний. Наблюдать визуально нереально уже, так как может и 2 часа пройти нормальной работы (много циклов) до стопа

Спасибо!
 
 Top
Zireael
Отправлено: 07 Февраля, 2020 - 13:33:04
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017  
Репутация: 585




Включить отладку и смотреть на какой строке был вылет.
Или записывать в файл что-нибудь чтобы понять где был вылет.
 
 Top
Basilvg
Отправлено: 07 Февраля, 2020 - 14:14:52
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2020  
Репутация: 0




 Zireael пишет:
Включить отладку и смотреть на какой строке был вылет.


это хорошо работает на первых прогонах - реальной отладке, когда пошагово отсматриваю, сейчас ну нет возможности по 1-2 час смотреть где идет сбой - это при написании скрипта 100+ отладочных запусков было

 Zireael пишет:

Или записывать в файл что-нибудь чтобы понять где был вылет.


как записывать? что записывать? есть есть запись лога, попрошу подробней - это идеальный подход
 
 Top
Zireael
Отправлено: 07 Февраля, 2020 - 15:24:10
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
нет возможности по 1-2 час смотреть где идет сбой

А зачем? Кибор закроется в случае ошибки, в отладчике последней будет строка, на которой это произошло.
 Цитата:
что записывать?

Без разницы, хоть текст, хоть значения переменных. Суть примерно такая:
CODE:
loop()
{
// тут допустим findimage
write("C:\logging.txt", "findimage выполнился"); // дописать эту строку в файл
// тут допустим клик, на нём явно не будет вылета, можно ничего в файл не записывать
// тут допустим findcolor
write("C:\logging.txt", "findcolor +++"); // дописать эту строку в файл
sleep(500);
}



function write(string name_file, string text)
{
if(fopen(name_file, "a")) // открыть файл
{
fwrite(text); fwrite(ENDL); // дописать строку и перенос строки
fclose(); // закрыть файл
}
}
 
 Top
Basilvg
Отправлено: 07 Февраля, 2020 - 15:36:16
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2020  
Репутация: 0




 Zireael пишет:
 Цитата:
нет возможности по 1-2 час смотреть где идет сбой

А зачем? Кибор закроется в случае ошибки, в отладчике последней будет строка, на которой это произошло.
 Цитата:
что записывать?

Без разницы, хоть текст, хоть значения переменных. Суть примерно такая:
CODE:
loop()
{
// тут допустим findimage
write("C:\logging.txt", "findimage выполнился"); // дописать эту строку в файл
// тут допустим клик, на нём явно не будет вылета, можно ничего в файл не записывать
// тут допустим findcolor
write("C:\logging.txt", "findcolor +++"); // дописать эту строку в файл
sleep(500);
}



function write(string name_file, string text)
{
if(fopen(name_file, "a")) // открыть файл
{
fwrite(text); fwrite(ENDL); // дописать строку и перенос строки
fclose(); // закрыть файл
}
}


ага, вот правильно понимаю, сделать проверку так:

1) скопировать код в кибор (без компиляции в exe)
2) поставить галку v отладка (пошагово не отмечать)
3) Включить

в случае сбоя кибор стопориться и будет показана строка кода где был сбой
далее смотрю по скрипту место и делаю вывод
2-3 повтора и понимаю систему

так?

Спасибо!

(Отредактировано автором: 07 Февраля, 2020 - 15:36:56)

 
 Top
Zireael
Отправлено: 07 Февраля, 2020 - 15:40:59
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
в случае сбоя кибор стопориться и будет показана строка кода где был сбой
далее смотрю по скрипту место и делаю вывод
2-3 повтора и понимаю систему
так?

Да.
 
 Top
Basilvg
Отправлено: 07 Февраля, 2020 - 16:02:45
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2020  
Репутация: 0




 Zireael пишет:
 Цитата:
в случае сбоя кибор стопориться и будет показана строка кода где был сбой
далее смотрю по скрипту место и делаю вывод
2-3 повтора и понимаю систему
так?

Да.


Большое спасибо, откручиваю, наблюдаю, фиксю
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by