Obvestilo o uhajanju pomnilnika v Delphiju ob izhodu iz programa

Digitalni človeški in računalniški procesor

monsitj / Getty Images





Vse različice Delphija od Delphija 2006 naprej imajo posodobljen upravljalnik pomnilnika, ki je hitrejši in bogatejši s funkcijami.

Ena izmed najlepših funkcij 'novega' upravitelja pomnilnika omogoča aplikacijam, da registrirajo (in odjavijo) pričakovano uhajanje pomnilnika in po želji poročajo o nepričakovanem uhajanju pomnilnika ob zaustavitvi programa.



Ko ustvarjate aplikacije WIN32 z Delphijem, morate obvezno sprostiti vse objekte (pomnilnik), ki jih ustvarite dinamično.

Do puščanja pomnilnika (ali vira) pride, ko program izgubi zmožnost sprostitve pomnilnika, ki ga porabi.



Prijavite puščanje pomnilnika ob zaustavitvi

Zaznavanje uhajanja pomnilnika in poročanje sta privzeto nastavljena na false. Če ga želite omogočiti, morate globalno spremenljivko ReportMemoryLeaksOnShutdown nastaviti na TRUE.

Ko je aplikacija zaprta, bo v primeru nepričakovanega uhajanja pomnilnika prikazala pogovorno okno 'Nepričakovano uhajanje pomnilnika'.

Najboljše mesto za ReportMemoryLeaksOnShutdown bi bilo v izvorna koda programa (dpr) mapa.

|_+_|

Opomba: zgoraj je uporabljena globalna spremenljivka DebugHook, da se zagotovi prikaz uhajanja pomnilnika, ko se aplikacija izvaja v načinu za odpravljanje napak – ko namestite F9 iz Delphi IDE.



Testna vožnja: odkrivanje puščanja pomnilnika

Ko je ReportMemoryLeaksOnShutdown nastavljen na TRUE, dodajte naslednjo kodo v rutino za obravnavo dogodkov OnCreate glavnega obrazca.

|_+_|

Zaženite aplikacijo v načinu za odpravljanje napak, zaprite aplikacijo - morali bi videti pogovorno okno za uhajanje pomnilnika.



Opomba: Če iščete orodje za odkrivanje napak vaše aplikacije Delphi, kot so poškodbe pomnilnika, uhajanje pomnilnika, napake pri dodeljevanju pomnilnika, napake pri inicializaciji spremenljivk, konflikti definicij spremenljivk, napake kazalcev ... si oglejtemadExceptin EurekaLog

Delphi Tips Navigator