|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.08.2022, 12:16 | #1 |
Новичок
Джуниор
Регистрация: 25.08.2022
Сообщений: 3
|
exceptions в секции finally некорректно работают при включении EurekaLog
Добрый день!
В EurekaLog ошибка или я что-то делаю не так и мой код ошибочный? Пытаюсь выполнить данный код. Без EurekaLog отображает 4 сообщения: 1919 5=1 1920 1 С EurekaLog отображает только 1919 а потом проект вылетает с ошибкой Application made attempt to free invalid or unknown memory block В чём может быть дело? Разве нельзя использовать вложенные обработчики исключений в секции finally? Код:
|
25.08.2022, 12:34 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
А при чем тут исключения? Сами же сказали, что без EurekaLog все сработало.
Ищите причину ошибки в этом самом EurekaLog. |
25.08.2022, 12:45 | #3 |
Новичок
Джуниор
Регистрация: 25.08.2022
Сообщений: 3
|
Дело в том, что приложение периодически отваливается на подобном коде. Примерно раз в неделю. Инструмент EurekaLog был установлен чтобы выявить возможные ошибки в программе. Ну он и выявил. Только непонятно, где тут ошибка.
|
25.08.2022, 13:47 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Тогда стоит изучить эту причину ошибки подробнее. Например исследовать код более подробно и на низком уровне.
Возможно это даже не в этом коде дело. Высвобождение памяти может начинаться массово с использованием сборщика мусора после возникновения исключения. Тогда не верный указатель мог появляться в любом месте кода, где вы забыли что-то освободить (допустим присвоили nil вместо указателя, а сам блок не высвободили, но в destroy этот nil передается для освобождения). |
26.08.2022, 02:21 | #5 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,879
|
Цитата:
Вы можете прокомментировать свой код? Для чего нужна та или иная строка? Не надо валить на Эврику. Она-то как раз работает нормально. |
|
02.09.2022, 10:34 | #6 | |
Новичок
Джуниор
Регистрация: 25.08.2022
Сообщений: 3
|
Цитата:
Объектно-ориентированное программирование, как может быть вообще такое что приходится задумыватся, что использовать можно, а что нельзя в секции finally? Почему нельзя-то, ситуация же вроде стандартная и совершенно простая. Или не использовать вообще finally в программе, тк процедуры, которые из секции finally вызываются, могут в любое время обрасти дополнительными try-except-end и компилятор на это отреагирует совершенно нормально, даже hints и warnings не выведет. Сам код, приведённый в примере,выдернут из проекта, а потом максимально упрощен (чтобы не размещать здесь более 1000 строк кода) - чтобы продемонстрировать глюк Delphi или как вариант, глюк EurekaLog, так как без EurekaLog-то всё вроде работает нормально ... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при включении компа начал мигать экран с частотой бликов раз в секунду. Рабочий стол и все прочее нормально работают | Максим_Западное | Компьютерное железо | 1 | 27.05.2016 17:23 |
с++.операторы цикла while. do while. for. работают некорректно. | linberg | Помощь студентам | 2 | 13.10.2013 17:01 |
EurekaLog | Desha | Компоненты Delphi | 2 | 27.06.2013 13:54 |
Почему две программы с инди одновременно работают некорректно? | TwiX | Работа с сетью в Delphi | 1 | 12.12.2009 15:22 |
EurekaLog [Delphi7] | NieL | Общие вопросы Delphi | 0 | 17.08.2009 11:35 |