| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Runtime error 216 at 004045B6 - при выходе |
| Автор: superVad 25.2.2011, 19:25 |
| Есть программа писанная на Д7. Update на Делфи не стоял (для 7 он там один официальный). После установки Update, при выходе из программы стал появляться Access violation, а после него окошко с надписью Runtime error 216 at 004045B6. Runtime error 216 - это собственно и есть Access violation. Подскажите пожалуйста - как мне отловить эту ошибку. Программа довольно большая, а дебагер не помогает. |
| Автор: CodeMonkey 25.2.2011, 23:50 |
| Runtime error 216 сильно намекает, что у тебя в программе порча памяти. Ловится включением отладочного режима в менеджере памяти. http://www.gunsmoker.ru/2010/03/blog-post.html |
| Автор: superVad 26.2.2011, 01:42 | ||
| Фух. Ну нашел строку из-за которой все случилось. По совету из http://www.gunsmoker.ru/2009/05/access-violation.html включил опции "Use Debug DCUs" и "Stack frames". И наконец то дебагер стал указывать на строку в которой ошибка. Это в процедуре FinalizeUnits модуля System, которая запускалась из процедуры _halt0. Далее нагуглил http://blog.karelia.ru/teran/?p=343. Стало ясно, что ошибка в какй то секции finalization. Этих секций оказалось не много. Вот строка - без которой ошибки нет:
Log это TStringList. Чего так - непонятно. Сам лог вполне сохраняется, на самой этой строчке ошибки нету. CodeMonkey, большое спасибо за твои статьи. Я еще до того как ты отписался ими уже обложился Менеджеры памяти в данном вопросе не помогли (FastMM, SafeMM). Но как FastMM выдал мне 11 мегабайтный лог - я и призадумался на часик, пока нашел проблему. northener, не стал ее трогать - платная же. |
| Автор: northener 26.2.2011, 02:56 |
Она платная. И купленная мною. Но для прочих она предоставляет триал, который ты можешь/имеешь право реально использовать для поиска конкретной ошибки в своём проекте. Нет гарантии, что она поможет. Но "попытка - не пытка"! Добавлено @ 03:04 Думаю, что 30 дней тебе хватит, чтобы найти ошибку |
| Автор: superVad 26.2.2011, 09:38 |
Я думаю, что будет еще шанс это проверить |
| Автор: CodeMonkey 26.2.2011, 13:36 |
| Лог в 11 Мб - это как бэ решительно намекает. |
| Автор: superVad 26.2.2011, 14:58 |
И это сразу после запуска. Там с очисткой ТриВью проблемы. Буду разбираться. |