Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako nájsť pretečeniu pamäte v Linuxe

Na rozdiel od novších programovacích jazykoch ako je Java a Python , programovacie jazyky , ako je C vyžadujú, aby programátor riadiť svoju vlastnú pamäť . C poskytuje zázemie pre podanie žiadosti o voľnej pamäti a vrátiť ho do operačného systému , ale nič viac . Vzhľadom k tomu , jazyky , ako je C neponúkajú žiadne garbage collection mechanizmus vyčistiť objekty , ktoré sú už v prevádzke , musí programátor byť ostražití a odstrániť predmety , ak už nie sú potrebné . Ak program nie je zbaviť svojich nevyužitých objektov , môže výsledný pretečeniu pamäte spôsobiť , že operačný systém sa zrúti . Pokyny dovolená 1

Inštalácia " Valgrind " ladenie apartmáne.

Balíček Valgrind je voľne k dispozícii na všetkých distribúciách Linuxu . Ak ho chcete nainštalovať na Debian - odvodených distribúcií , ako je Ubuntu , zadajte " sudo apt - get install Valgrind . " Na RedHat alebo Fedora , typu " sudo yum install Valgrind . "
2

Kompilácia program s ladenie symbolmi .

Najčastejšie kompilátor pre C programy na linuxových systémoch je gcc . Použite " - g " vlajku pokyn gcc zahrnúť symboly ladenie do binárnej , že to vytvára . ( Ladenie symboly sú nevyhnutné pre ladiaci ako Valgrind sa odvolávajú na špecifické problémy v kóde ) .

Ak máte C program s názvom " memoryhog.c . " Napríklad , mali by ste skompilovať pomocou tohto príkazu : gcc - g memoryhog.c
3

Spustite binárne vášho programu prostredníctvom Valgrind

Ak to povedať inak , gcc . bude názov vášho programu " a.out . " Ak chcete spustiť binárny súbor s názvom " a.out " pomocou Valgrind , zadajte nasledujúci príkaz : . Valgrind - leak - check = full - show - dosiahnuteľné = yes /a.out
4

Skontrolujte , či je výstup z Valgrind

Ak boli opravené všetky úniky pamäte , Valgrind správy " všetky haldy bloky boli uvoľnené - . žiadne úniky sú možné " .

Ak sú prítomné akékoľvek úniky pamäte , Valgrind zoznam číslo riadku , na ktorom je vytvorený únik .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené