Форум программистов
Реклама:
Контент-фильтр ИКС для учебных заведений.
Готовый набор правил для школ, фильтрация по спискам Роскомнадзора и Минюста. Соответствует ФЗ №436 и №139.
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 17.08.2016, 12:03   #1
yan11
Пользователь
 
Регистрация: 15.08.2016
Сообщений: 14
Репутация: 10
По умолчанию Критическая ошибка

Через минут 10 работы программа вываливается с критическими ошибками.

Как определить с чем связан вылет ?
Изображения
Тип файла: jpg 1.jpg (22.5 Кб, 50 просмотров)
Тип файла: jpg 2.jpg (18.9 Кб, 50 просмотров)

Последний раз редактировалось yan11; 17.08.2016 в 12:53.
yan11 вне форума   Ответить с цитированием
Старый 17.08.2016, 12:57   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,738
Репутация: 2701

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Видимо с отсутствием в коде проверки успешности выполнения какой-то функции и попытке читать после этого по некорректному адресу.

Код-то покажите.
Alex11223 вне форума   Ответить с цитированием
Старый 17.08.2016, 17:02   #3
yan11
Пользователь
 
Регистрация: 15.08.2016
Сообщений: 14
Репутация: 10
По умолчанию

800 строк кода сюда выкладывать ?
yan11 вне форума   Ответить с цитированием
Старый 17.08.2016, 17:22   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 22,096
Репутация: 5003
По умолчанию

а почему нет? исходники проекта запаковать в архив, архив прикрепить к сообщению (см. "Расширенный режим" - "Управление вложениями")
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 17.08.2016, 19:02   #5
yan11
Пользователь
 
Регистрация: 15.08.2016
Сообщений: 14
Репутация: 10
По умолчанию

Выкладываю исходники сюда https://cloud.mail.ru/public/3xEG/shiDPE8Ni

В поле таймера пропишите 50, нажмите Start запустится таймер. Через 5-10 минут получаем примерно следующие ошибки.
Изображения
Тип файла: jpg 3.jpg (34.2 Кб, 39 просмотров)
Тип файла: jpg 4.jpg (31.7 Кб, 39 просмотров)
yan11 вне форума   Ответить с цитированием
Старый 17.08.2016, 19:24   #6
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,738
Репутация: 2701

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Дык вроде ж тема не про утечки памяти была.
Alex11223 вне форума   Ответить с цитированием
Старый 17.08.2016, 19:52   #7
kropotkina-alice
Участник клуба
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Адрес: в России
Сообщений: 549
Репутация: 504
По умолчанию

Навскидку...

function SearchPartOfScreen
Не создается bmMain, но происходит обращение к bmMain и в завершение всего
bmMain.Free; который не был создан

function SaveFullScreen
Есть bmMain := TBitmap.Create();, но нет bmMain.Free...

function GetCurrentCard()
Закомментировано создание bmMain := TBitmap.Create();
Тем не менее есть категоричное
finally
bmMain.Free;

(Об if (SearchBitmap(bmMain, bmSub, R)) then перед этим я уже и не говорю...
Очередное обращение к несозданному объекту)...

Дальше не стала смотреть.
Видно, что вы очень куда-то торопились.
А программы надо писать вдумчиво, внимательно и без спешки...
kropotkina-alice вне форума   Ответить с цитированием
Старый 17.08.2016, 20:20   #8
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,133
Репутация: 1215
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Навскидку...
bmMain.Free; который не был создан
Он как раз для этого и создан.

Use Free to destroy an object. Free automatically calls the destructor if the object reference is not nil. Any object instantiated at runtime that does not have an owner should be destroyed by a call to Free so that it can be properly disposed of and its memory released. Unlike Destroy, Free is successful even if the object is nil; so if the object was never initialized, Free won’t result in an error.

Перевожу последнее предложение, вызов Free не возвращает ошибку если объект не инициирован.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума   Ответить с цитированием
Старый 17.08.2016, 20:37   #9
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,133
Репутация: 1215
По умолчанию

Код:


function SaveFullScreen(Way:string):boolean;
  DC:=GetDC(0); // - есть
  ReleaseDC(0, DC); //- нету. Утечка хэнделов

Код:

function SaveFullScreen(Way:string):boolean;
...
  Form1.Image1.Picture.Bitmap := bmMain;

Image и его приятели имеют хитрую структуру и алгоритмы поведения.
Обычно объекты присваиваться по ссылке, но не в этот раз. Тут идет присвоение объектов через метод Assign(), т.е. присвоение идёт по по элементам.
Поэтому далее имеем утечку Bitmap'ов.
Добавить:
Код:

bmMain.Free;

Аналогичная ошибка в
Код:

procedure Search(pattern: string; p_color: TColor);
...
  Form1.Image1.Picture.Bitmap := CaptureScreenRect(Rect(0,0,Screen.Width,Screen.Height));

__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 17.08.2016 в 20:48.
Pavia вне форума   Ответить с цитированием
Старый 17.08.2016, 21:53   #10
yan11
Пользователь
 
Регистрация: 15.08.2016
Сообщений: 14
Репутация: 10
По умолчанию

kropotkina-alice,,
Может быть вы не обратили внимание, но во всех случаях объект TBitmap создаёт и возвращает функция -

function CaptureScreenRect(aRect: TRect): TBitMap;


Pavia
Все эти функции не используются в Timer1.
Посмотрите пожалуйста процедуру, которая в таймере запускается.
TForm1.Button1Click(Sender: TObject);
yan11 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[sigplus] Критическая ошибка: Sparky WordPress и другие CMS 1 25.08.2011 10:42
критическая ошибка при выполнении программы Познающий Assembler 3 18.11.2009 17:51
КРИТИЧЕСКАЯ ОШИБКА benjaminfran Общие вопросы Delphi 11 15.02.2008 12:23




03:39.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru