Detectarea scurgerilor de memorie în c

Detectarea scurgerilor de memorie în C

La scrierea programelor care utilizează alocarea dinamică a memoriei (funcții malloc, calloc, realloc, gratuit), este necesar să ne amintim eliberarea tuturor memoriei alocate vreodată. O "scurgere de memorie" este o situație în care un program, din anumite motive, nu eliberează memoria care nu mai este utilizată. Este necesar să se poată detecta astfel de probleme!







Următoarele sunt sfaturi practice pentru detectarea scurgerilor de memorie, în funcție de compilatorul utilizat.

Microsoft Visual C Compilator / MS Windows

La începutul programului, adăugați următoarele linii (este important să păstrați ordinea!)

și apoi adăugați apelul principal până la sfârșitul funcției

Această funcție va imprima un mesaj în fereastra de ieșire cu informații despre scurgerile de memorie, dacă există.







Mai jos este un exemplu al unui astfel de mesaj

Următoarele informații despre fiecare scurgere de memorie sunt indicate: locația din fișierul în care a fost alocată memoria, dimensiunea memoriei alocate și conținutul acesteia.

Colecția de compilatoare GNU / Linux

La începutul programului, adăugați următoarea linie

și chiar la începutul apelului principal al funcției

Apoi pur și simplu rulați programul dvs. și după aceasta utilitate mtrace

Ieșirea utilitarului mtrace conține informații despre scurgerile de memorie, indicând locația din fișierul în care a fost alocată memoria și dimensiunea memoriei alocate.

Colecția de compilatoare GNU (MinGW) / MS Windows

Modificările codului sursă al programului nu sunt necesare. Este necesar să compilați programul cu următoarele pavilioane:

Apoi rulați programul cu Dr. memorie:

Ieșirea conține informații despre problemele existente atunci când lucrați cu memorie dinamică, în special despre scurgeri de memorie:

De asemenea, puteți găsi informații despre sursa scurgerii în codul sursă al programului cu locația din fișier.







Articole similare

Trimiteți-le prietenilor: