Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Безопасное аварийное завершение приложения


Страницы:   1 2 3

DevilDevil ©   (2006-08-25 01:46:00) 

При возникновении каких либо даже серьёзных ошибок в приложении из под Delphi, достаточно нажать Ctrl+F2, чтобы приложение закрылось, все деструкторы были выполнены (как мне кажется), не произошло утечек памяти. Существуют ли вообще такие методы (а в частности, является ли такой процедура Halt), позволяющие безопасно, без утечек ресурсов, завершающих приложение хотя бы из среды?


Fay   (2006-08-25 21:42:00) [41]

> Я чё то не догоняю...
> Я не прав?
Прав.


Чапаев   (2006-08-25 19:40:00) [42]

> отпереть по идее ни кто не имеет права, даже Винда

Прокурору о своих правах расскажешь... Или Флёнову...


DevilDevil   (2006-08-25 19:33:00) [43]

> GrayFace ©   (25.08.06 17:52) [7]
это точно!

Я чё то не догоняю... Допустим занял [у Винды] я 40 мегабайт из Кучи, приложение завершилось по Ctrl+F2, занимаемые 40 мегабайт так и остались запертыми... и отпереть по идее ни кто не имеет права, даже Винда. Это я и называю утечкой памяти. Говоря о классах и деструкторах... честно говоря имел ввиду, что память под них освобождается [в Куче]. Тоже самое наверняка и с видеопамятью, если OpenGL-приложение завершилось со страшнейшей руганью. Я не прав?


GrayFace   (2006-08-25 17:52:00) [44]

Атомы остаются. Причем в любой проге, использующей VCL есть 2 атома. Так что, если 32767 раз нажать Ctrl+F2, по идее ни одно VCL приложение уже не запустится до перезагрузки.


guav   (2006-08-25 12:46:00) [45]

> По сути - твой пост о MemProof. Что в нём отбражается -
> я не знаю, посему молчу.

Там отображаются количество открытые программой хендлов ресурсов (в т.ч. хендлы файлов, UI и GDI),  выделенные блоки памяти. После завершения отображаются  те которые не были освобождены явно. Это позволяет убедится в отсутствии утечек и упрощает их поиск при их наличии.


Германн   (2006-08-25 02:55:00) [46]


> guav ©   (25.08.06 02:36) [4]
>
> > Если приложение завершается, то о каких утечках идёт речь?
>
>
> О тех что например в MemProof отображаются. Я и говорю,
> что все ресурсы приложение вернёт, а куда оно денется, но
> обычно больше пользы от кода не имеющего утечек, т.к. его
> многократное выполнение не приведёт к перерасходу/исчерпанию
> ресурсов.
>

По сути - твой пост о MemProof. Что в нём отбражается - я не знаю, посему молчу.


guav   (2006-08-25 02:36:00) [47]

> Если приложение завершается, то о каких утечках идёт речь?

О тех что например в MemProof отображаются. Я и говорю, что все ресурсы приложение вернёт, а куда оно денется, но обычно больше пользы от кода не имеющего утечек, т.к. его многократное выполнение не приведёт к перерасходу/исчерпанию ресурсов.


Германн   (2006-08-25 02:07:00) [48]


> guav ©   (25.08.06 02:02) [2]
>
> > безопасно, без утечек ресурсов, завершающих приложение
> хотя
> > бы из среды
>
> Без утечек для приложения - нет, все ресурсы освобождать
> вручную.

Если приложение завершается, то о каких утечках идёт речь?


guav   (2006-08-25 02:02:00) [49]

> безопасно, без утечек ресурсов, завершающих приложение хотя
> бы из среды

Без утечек для приложения - нет, все ресурсы освобождать вручную.
Без утечек для ОС - любой, хоть Ctrl+F2, способ, вся память и ресурсы возвращаются ОС (ну кроме особых случаев типа объект в буфере обмена, который, естественно, останется там).


guav   (2006-08-25 01:58:00) [50]

> все деструкторы были выполнены (как мне кажется), не произошло
> утечек памяти.

ага. щаз.
_ничего_ не выполняется.
и не надо. так и задумано.


> является ли такой процедура Halt

нет.
Halt выполняет все финализации модулей и финализацию переменных с управляемым временем жизни, деструкторы автоматом не вызываются.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо