Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Application Error - Exception EAccessViolation, при верном выходе из программы 
:(
    Опции темы
northener
Дата 3.4.2013, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



На Д6 выглядит так:


Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  ELog.png 17,49 Kb


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
vinc2000
Дата 3.4.2013, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FlashEx [project]



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 15.11.2012
Где: Moscow

Репутация: нет
Всего: нет



Ок. Потестил Eurek'ой -> ссылается на компонент регулятор громкости jantracker (начало модуля). 
Eureka Results
Удалил его - ошибка исчезла! Поставил заново - все тоже. Но компонент для меня незаменимый, поэтому прошерстил jantracker.pas, проблема я думаю в неособожденном 

Код

FBackBitmap := TBitmap.Create;


Кто что думает по этому поводу?


P.S. Улетная вещь - эта ваша Эврика!

Это сообщение отредактировал(а) vinc2000 - 3.4.2013, 22:33

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  janTracker.pas 11,53 Kb
PM MAIL WWW   Вверх
northener
Дата 3.4.2013, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата(vinc2000 @  3.4.2013,  22:30 Найти цитируемый пост)
Ок. Потестил Eurek'ой -> ссылается на компонент регулятор громкости jantracker (начало модуля). 
Eureka Results

Ты не Leaks показывай, а Call Stack.

И посмотри на какой строке исходника произошла ошибка.

Это сообщение отредактировал(а) northener - 3.4.2013, 22:38


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
vinc2000
Дата 3.4.2013, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FlashEx [project]



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 15.11.2012
Где: Moscow

Репутация: нет
Всего: нет



А call stack у меня нет:( Только General и Leaks:

Строка 124, т.е.:
Код

FBackBitmap := TBitmap.Create;


P.S. Начал копать глубже без jantracker - та же ошибка, только теперь ссылается на Controls.pas и на Classes.pas.
Код

procedure TControl.DblClick;
begin
  if Assigned(FOnDblClick) then FOnDblClick(Self);
end;


Мда, как говорится - Это только начало пути... smile 

Это сообщение отредактировал(а) vinc2000 - 3.4.2013, 23:03

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  2013_04_03_224751.png 15,68 Kb
PM MAIL WWW   Вверх
northener
Дата 3.4.2013, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата(vinc2000 @  3.4.2013,  22:57 Найти цитируемый пост)
А call stack у меня нет:( Только General и Leaks:

Можешь выложить сюда эльфа? (Файл "Имяприложения.elf")


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
northener
Дата 4.4.2013, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата(vinc2000 @  3.4.2013,  22:57 Найти цитируемый пост)
А call stack у меня нет:( Только General и Leaks:

Ага понял.
Это было всего лишь сообщение об утечках памяти. Но топик-то вроде изначально был об AV. Ты вот получи AccessViolation при включенной Эврике. Тогда посмотрим на отчёт Эврики и поговорим.
А на утечки памяти потом обратишь внимание. Они конечно зло. Но AccessViolation гораздо хуже. И гораздо труднее находить его причину.

И уж утечки памяти (Memory Leaks) никак не могут быть причиной AccessViolation! Тут совсем обратная ситуация. Утечки памяти это когда программа просит у ОС выделить для себя память, получает её, как-то использует (чаще всего однократно) и забывает её возвращать ОС. И таким образом память будет потеряна. Программа её не использует, а другим программам эта память не может быть передана.
AccessViolation же возникает в том случае, когда программа обращается к области памяти, которая ей не принадлежит. Либо не была выделена ОС, либо ранее была выделена ей, но уже возвращена ОС.

P.S.
  ОС - Операционная система. В данном случае Windows.
P.P.S. 
  Термин программа стоит читать как процесс.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Beltar
Дата 4.4.2013, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 3
Всего: 7



Вполне возможно, что удалив компонент ты только уменьшил размер программы, так что разрушение памяти стало происходить где-то в "безопасной" зоне (ну может данные какие-то, которые можно безнаказанно затереть\испортить), добавил процедурку в обработчик и все, размер снова вырос, и ломается какая-то нужная таблица.
У меня в соседней теме ошибка вообще оказалась в непрописанном inherited Create. Причем сколько помню это inherited всегда вставлялсь автоматически при создании конструктора по Ctrl-Shift-C, можешь свои классы, если есть на подобное проверить, но подобное все-таки локализует проблему ошибочным классом.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Akella
Дата 4.4.2013, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(vinc2000 @  3.4.2013,  19:00 Найти цитируемый пост)
в видео-туториале XE2, а у меня семерка в XPSP3


Ты путаешь Windows и Delphi smile 
PM MAIL   Вверх
vinc2000
Дата 4.4.2013, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FlashEx [project]



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 15.11.2012
Где: Moscow

Репутация: нет
Всего: нет



Цитата(Akella @  4.4.2013,  20:28 Найти цитируемый пост)
Ты путаешь Windows и Delphi

Я пока что ничего не путаю smile
Если ты смотрел туториал - там тестится на XE2 в 7, а у меня D7 в XPSP3. (проблема с установкой EurekaLog уже решена)

Ок. Я так понимаю что это дело может затянуться надолго smile Как я уже говорил - дело похоже в лже-утечках на D7! Переносить в XE2 особого желания нет. FASTMM4 и Эврика их фиксируют но только в режиме компиляции с компонентом jantracker (без него все ок!) (я специально подчеркнул). При внешнем запуске exe'шника - все ок! -  при закрытии - никаких AV не вываливается...Когда играет музычка и закрываем - AccessViolation опять же в режиме компиляции и список утечек (скорее лжеутечек), а также особенности по видимому NewAc 2.6.1. При внешнем запуске и закрытии с музычкой - все ок.
Ковырять надо jantracker.pas, и файла elf у меня кстати нет:(. А где его искать то надо?

Цитата(Beltar @  4.4.2013,  15:59 Найти цитируемый пост)
но подобное все-таки локализует проблему ошибочным классом.

У этой медали 2 стороны: нельзя не рассматривать такой вариант, когда все же никто не застрахован от подобного рода разрушений памяти. Я конечно не даю 100% гарантии, что логика верна (результаты FASTMM тому в доказательство), но все же стараюсь придерживаться "простоты и прозрачности кода", а также его периодической санации, т.е. удаляю/заменяю деструктивные участки. В целом благодаря модульности (видео-1 модуль, текст+аудио-2 модуль и т.д.) код не превращается в неперевариваемую кашу и может поэтому удается избегать тучи критических AV и AError'ов. Кто знает smile 

Это сообщение отредактировал(а) vinc2000 - 4.4.2013, 21:58
PM MAIL WWW   Вверх
northener
Дата 4.4.2013, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата(vinc2000 @  4.4.2013,  21:44 Найти цитируемый пост)
 дело похоже в лже-утечках на D7

Да забудь ты про утечки! Они тут не при чем.


Цитата(vinc2000 @  4.4.2013,  21:44 Найти цитируемый пост)
 файла elf у меня кстати нет:(. А где его искать то надо?

Когда появится ошибка, тогда появится и файл. В той же папке, что и программа.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
vinc2000
Дата 4.4.2013, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FlashEx [project]



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 15.11.2012
Где: Moscow

Репутация: нет
Всего: нет



Специально сейчас нашел AV во внешке exe - Call Stack теперь есть! И нашел el-файл (он был аж в Application Data\EurekaLab s.a.s\EurekaLog\Bug Reports)
Прикрепляю. AV-ошибка мне известна, т.е. она возникает не при закрытии программы, а при клике. 

Это сообщение отредактировал(а) vinc2000 - 4.4.2013, 22:42

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  FlashEx.el 31,88 Kb
PM MAIL WWW   Вверх
northener
Дата 5.4.2013, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата(vinc2000 @  4.4.2013,  22:18 Найти цитируемый пост)
И нашел el-файл (он был аж в Application Data\EurekaLab s.a.s\EurekaLog\Bug Reports)

Очень хорошо, что нашел.
(Я являюсь честным обладателем лицензии на Эврику, но версии 6. А в версии 6 эти файлы Эврика помещала в папку программы).
Вот теперь открой этот файл при запущенной Дельфи и щёлкни по строке 
|7FFFFFFE|04     |00000000|006BA7E6|FlashEx.exe |002BA7E6|Unit3            |TForm3           |Next_btnClick                         |126[3]   |
Или открой модуль, в котором описан тип TForm3, найди в нем метод Next_btnClick и посмотри, что там находится на третьей строке полсле начального begin.
И покажи эту строку тут.

P.S.
На худой конец кинь мне в личку сам EXE-файл и DLL файлы, которые ему нужны. Попробую найти проблему.

Это сообщение отредактировал(а) northener - 5.4.2013, 01:58


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
vinc2000
Дата 5.4.2013, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FlashEx [project]



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 15.11.2012
Где: Moscow

Репутация: нет
Всего: нет



Код

  Data := Form1.VT1.GetNodeData(Node); //VT1 - это VirtualStringTree


А в чем проблема-то northener? Эта ошибка связана с листанием листов pdf-файла и возникает она потому-что книга не загружена, а кнопки листания активны smile 
Я уже понял, что самое главное - когда при внешнем закрытии все ок!, а то что там при выходе в режиме компиляции вываливаются какие-то ErrorDialogs или AV - это все пурга smile 
См. вложение (Next_btn & Previous_btn обведены - а в коде условие с циклом)

Это сообщение отредактировал(а) vinc2000 - 5.4.2013, 14:41

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  fpv_pdfv.png 30,17 Kb
PM MAIL WWW   Вверх
Чучмек
Дата 5.4.2013, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 14
Всего: 41



Цитата(vinc2000 @  5.4.2013,  14:11 Найти цитируемый пост)
Я уже понял, что самое главное - когда при внешнем закрытии все ок!, а то что там при выходе в режиме компиляции вываливаются какие-то ErrorDialogs или AV - это все пурга

Уверен? Есть обращение в никуда. Просто  под отладчиком память распределяется по-другому


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Beltar
Дата 5.4.2013, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 3
Всего: 7



Мне вот пока известен только один случай явной пурги, это неизвестное исключение при работе с базой, когда таблица не может лукапнуть что-то, т. к. KeyValue=NULL, в остальных случаях вряд ли стоит надеяться, что все прокатит.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0876 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.