Είπα να πάρω λίγο χρόνο να γράψω έναν τρόπο να ελέγξετε το error μόνοι σας, μιας και είναι ένα από τα πιο συχνά ερωτήματα στο εργαστήριο (και ταυτόχρονα σημεία που δημιουργήται frustration).
Τα παρακάτω απαιτούν και μια μικρή εξοικείωση με Linux.
Τα παρακάτω είναι για Linux, αλλά αν νιώθετε έστω και λίγο tech-savvy ή περιπετειώδεις, μπορείτε να δοκιμάσετε το Windows Subsystem for Linux και πρακτικά να έχετε ένα μηχάνημα Linux μέσα στα Windows σας με ελάχιστο εως καθόλου κόπο.
Το εργαλείο που προτείνω είναι το Valgrind. Πιθανώς να υπάρχουν και native εργαλεία για Windows και για Eclipse συγκεκριμένα, αλλά δεν βρήκα κάτι με μια γρήγορη αναζήτηση.
Το Valgrind είναι μια σουίτα εργαλείων που κάνουν διάφορους ελέγχους μνήμης. Στην περίπτωση μας μας ενδιαφέρει μόνο το απλούστερο εργαλείο που είναι ο memory checker.
Μπορείτε να το εγκαταστήσετε από τον package manager της επιλογής σας, π.χ.
sudo apt install valgrind
και μετά μπορείτε να τρέξετε το πρόγραμμα κάνοντας
valgrind ./my_program
Σε γενικές γραμμές το valgrind θα σας πει τι memory leaks υπάρχουν. Για παράδειγμα, μπορείτε να δείτε κάποια συχνά errors στην εικόνα. Εδώ το πρόγραμμα κάνει access θέση μνήμης που δεν έχει δεσμεύσει. Το valgrind σου λέει ακριβώς σε ποια κλήση συνάρτησης έγινε αυτό, οπότε μπορείς πολύ εύκολα να έχεις εποπτία των λαθών σου και να τα βρεις σχετικά εύκολα.
Αυτά τα λίγα για το valgrind, φυσικά το εργαλείο έχει πολύ περισσότερες δυνατότητες. Για ένα πιο in-depth tutorial, δείτε και εδώ.