![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.08.2016
Сообщений: 14
|
![]()
Через минут 10 работы программа вываливается с критическими ошибками.
Как определить с чем связан вылет ? Последний раз редактировалось yan11; 17.08.2016 в 11:53. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Видимо с отсутствием в коде проверки успешности выполнения какой-то функции и попытке читать после этого по некорректному адресу.
Код-то покажите.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 15.08.2016
Сообщений: 14
|
![]()
800 строк кода сюда выкладывать ?
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
а почему нет? исходники проекта запаковать в архив, архив прикрепить к сообщению (см. "Расширенный режим" - "Управление вложениями")
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.08.2016
Сообщений: 14
|
![]()
Выкладываю исходники сюда https://cloud.mail.ru/public/3xEG/shiDPE8Ni
В поле таймера пропишите 50, нажмите Start запустится таймер. Через 5-10 минут получаем примерно следующие ошибки. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Дык вроде ж тема не про утечки памяти была.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
![]()
Навскидку...
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 перед этим я уже и не говорю... Очередное обращение к несозданному объекту)... Дальше не стала смотреть. ![]() Видно, что вы очень куда-то торопились. А программы надо писать вдумчиво, внимательно и без спешки... ![]() |
![]() |
![]() |
![]() |
#8 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Он как раз для этого и создан.
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 не возвращает ошибку если объект не инициирован.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#9 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]() Код:
Код:
Обычно объекты присваиваться по ссылке, но не в этот раз. Тут идет присвоение объектов через метод Assign(), т.е. присвоение идёт по по элементам. Поэтому далее имеем утечку Bitmap'ов. Добавить: Код:
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 17.08.2016 в 19:48. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 15.08.2016
Сообщений: 14
|
![]()
kropotkina-alice,,
Может быть вы не обратили внимание, но во всех случаях объект TBitmap создаёт и возвращает функция - function CaptureScreenRect(aRect: TRect): TBitMap; Pavia Все эти функции не используются в Timer1. Посмотрите пожалуйста процедуру, которая в таймере запускается. TForm1.Button1Click(Sender: TObject); |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[sigplus] Критическая ошибка: | Sparky | WordPress и другие CMS | 1 | 25.08.2011 10:42 |
критическая ошибка при выполнении программы | Познающий | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 18.11.2009 16:51 |
КРИТИЧЕСКАЯ ОШИБКА | benjaminfran | Общие вопросы Delphi | 11 | 15.02.2008 11:23 |