Форум: "Прочее";
Текущий архив: 2012.04.01;
Скачать: [xml.tar.bz2];
ВнизDelphi 7, приложение падает, если включена оптимизация Найти похожие ветки
← →
Pit (2011-12-06 11:45) [0]Если в настройках компилера включена галочка оптимизации - то приложение падает при загрузке, выдается AV..
Есть какие-нибудь рецепты почему так может быть и как исправлять, на что обратить внимание? Может быть есть какие-то фиксы для D7 по этому поводу?
← →
Palladin © (2011-12-06 11:47) [1]У тебя ошибка в программе.
← →
Pit (2011-12-06 11:56) [2]а я не знаю никакой более подробной информации в данном контексте. При трейсе вылетает при выходе из функции (после "end;"). Но за сообщение большое спасибо, полезно.
Насчет ошибки - не факт, приложение используется как минимум сотней корп. клиентов и никто не жалуется на стабильность с одной стороны. С другой стороны, если откомпилить при включенной оптимизации - приложение 100% падает при загрузке...
← →
И. Павел © (2011-12-06 11:56) [3]> [0] Pit (06.12.11 11:45)
При Access Violation приложение может падать где угодно. Просто при включеной оптимизации звещзды сложились так, что AV всплыл быстрее, чем с выключенной. В любом случае, нужно искать и исправлять AV, т.к. без оптимизации AV тоже себя рано или поздно проявит.
← →
Сергей М. © (2011-12-06 12:00) [4]
> я не знаю никакой более подробной информации в данном контексте
Как это "не знаю" ?
А адреса в сообщении об AV - они для Пушкина, да ?
← →
Anatoly Podgoretsky © (2011-12-06 12:10) [5]> Pit (06.12.2011 11:45:00) [0]
Рекомендация одна - восспользуйся отладчиком и проверь код программы.
← →
Юрий_ (2011-12-06 12:21) [6]
> И. Павел © (06.12.11 11:56) [3]
Не факт. Могут быть ошибки в самой оптимизации. Более того, в ранних версиях делфи они совершенно точно были, есть ли в D7 - сказать трудно.
В любом случае, отладчик + UseDebugDcus
← →
Inovet © (2011-12-06 12:38) [7]> [6] Юрий_ (06.12.11 12:21)
> Могут быть ошибки в самой оптимизации.
В 99.9(9) % случаев они в программе. Автору повезло - ошибка стабильно воспроизводится, найти намного проще.
← →
Плохиш © (2011-12-06 12:42) [8]
> Юрий_ (06.12.11 12:21) [6]
>
>
> > И. Павел © (06.12.11 11:56) [3]
>
>
> Не факт. Могут быть ошибки в самой оптимизации. Более того,
> в ранних версиях делфи они совершенно точно были
Плохому танцору известно, что мешает...
← →
han_malign (2011-12-06 14:57) [9]
> В 99.9(9) % случаев они в программе.
- 99% - запарывается указатель стека({$OPTIMIZATION OFF} влечет {$STACKFRAMES ON})...
(именно указатель, а не данные на стеке - иначе STACKFRAMES не спасло бы)
Обычно такое происходит при неправильном указании соглашения о вызове при импорте функций или объявлении функции обратного вызова(stdcall.vs.cdecl)...
UseDebugDcus - тут вообще не в тему, а отладчик поможет только если в [View->Debug Windows->Call Stack(или CPU, в зависимости от скила)] отслеживать момент когда стек умер - или просто внимательно проверить объявления всех функций которые явно или неявно вызываются из функции по выходу из которой происходит крах...
← →
Юрий_ (2011-12-06 15:14) [10]
> Плохому танцору известно, что мешает...
Хочешь об этом поговорить?
← →
Pit (2011-12-06 19:05) [11]han_malign, спасибо огромное за сообщение!
Очень похоже на правду, там где-то рядом используется дин. подгрузка DLL, буду копать это направление.
← →
Плохиш © (2011-12-06 19:16) [12]
> Юрий_ (06.12.11 15:14) [10]
>
>
> > Плохому танцору известно, что мешает...
>
> Хочешь об этом поговорить?
>
Я проблем чужой психики не решаю, идите к психиатру.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2012.04.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c