Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να βρεί μια διαρροή μνήμης στο Linux

Σε αντίθεση με νεότερες γλώσσες προγραμματισμού όπως η Java και Python , γλώσσες προγραμματισμού όπως η C να απαιτήσει από τον προγραμματιστή να διαχειρίζεται τη δική της μνήμη του . C παρέχει διευκολύνσεις για να ζητήσει ελεύθερη μνήμη και να το επιστρέψετε στο λειτουργικό σύστημα, αλλά τίποτα περισσότερο . Επειδή γλώσσες όπως η C δεν προσφέρουν μηχανισμό συλλογής απορριμμάτων για να καθαρίσει έξω τα αντικείμενα που δεν είναι πλέον σε χρήση , ο προγραμματιστής πρέπει να επαγρυπνούμε και να αφαιρέσετε αντικείμενα , όταν δεν χρειάζονται πλέον . Εάν ένα πρόγραμμα δεν απαλλαγούμε από αχρησιμοποίητα αντικείμενα , η προκύπτουσα διαρροή μνήμης μπορεί να προκαλέσει το λειτουργικό σύστημα να καταρρεύσει . Οδηγίες
Η

1 Τοποθετήστε τα " valgrind " debugging σουίτα .

Το πακέτο valgrind είναι ελεύθερα διαθέσιμο σε όλες τις διανομές Linux . Για να το εγκαταστήσετε στο Debian που προέρχονται από διανομές όπως το Ubuntu , πληκτρολογήστε την εντολή "sudo apt - get install valgrind . " Σε RedHat ή Fedora , τύπου " sudo yum install valgrind . " 2

Compile πρόγραμμά σας με τα σύμβολα εντοπισμού σφαλμάτων .

Η πιο κοινή compiler για τα προγράμματα C σε συστήματα Linux είναι gcc . Χρησιμοποιήστε την επιλογή " - g " σημαίας να δώσει εντολή gcc για να συμπεριλάβει τα σύμβολα αποσφαλμάτωσης σε δυαδικό που δημιουργεί. ( Σύμβολα εντοπισμού σφαλμάτων είναι απαραίτητες για διορθωτές όπως valgrind να αναφερθώ σε συγκεκριμένα προβλήματα στον κώδικά σας ) .

Εάν έχετε ένα πρόγραμμα C με το όνομα " memoryhog.c . " για παράδειγμα , θα το υπολογίσουν χρησιμοποιώντας αυτή την εντολή : gcc - g memoryhog.c εικόνων
3

Εκτελέστε δυαδικό πρόγραμμα σας μέσω valgrind

Εκτός αν το πω διαφορετικά , gcc . θα ονομάσει το πρόγραμμά σας " a.out . " Για να εκτελέσετε δυαδική σας με το όνομα " a.out " χρησιμοποιώντας valgrind , πληκτρολογήστε την εντολή: . Valgrind - Διαρροή -check = πλήρης - show- προσβάσιμο = ναι /a.out
Η 4

Επιθεωρήστε την έξοδο της valgrind

Εάν όλες οι διαρροές μνήμης έχουν καθοριστεί , valgrind εκθέσεις " όλα τα μπλοκ σωρού ελευθερώθηκαν - . δεν υπάρχουν διαρροές δυνατό» .

Αν τυχόν διαρροές μνήμης είναι παρόντες , valgrind παραθέτει η Αριθμός γραμμής στην οποία δημιουργείται η διαρροή .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα