Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

13.3. Εργαλεία εκσφαλμάτωσης

Πολλές φορές ο εντοπισμός ενός σφάλματος είναι ιδιαίτερα δύσκολος και για να επιτευχθεί χρειάζεται συστηματική παρακολούθηση και ανάλυση των δεδομένων του προγράμματος. Τα σύγχρονα εργαλεία προγραμματισμού δίνουν τη δυνατότητα στον προγραμματιστή να παρακολουθεί, τι συμβαίνει στο παρασκήνιο του προγράμματος κατά το χρόνο εκτέλεσης. Αυτό επιτυγχάνεται με τη χρήση κατάλληλων εργαλείων, που παρέχουν - πολλές δυνατότητες ελέγχου κατά τη δοκιμαστική εκτέλεση ενός προγράμματος. Τα περισσότερα εργαλεία προγραμματισμού συνοδεύονται από προγράμματα διόρθωσης (debuggers).

Τα ονόματα των μεταβλητών πρέπει να ανάγουν στο περιεχόμενό τους. Έτσι διευκολύνεται η εκσφαλμάτωση.

Με τα εργαλεία εκσφαλμάτωσης είναι δυνατό να εμφανίζεται η τιμή μιας μεταβλητής ή μιας έκφρασης, να γίνεται δυναμική επέμβαση σε κάποιο σημείο δίνοντας διαφορετική τιμή σε μια μεταβλητή ή να εκτελείται βήμα προς βήμα το πρόγραμμα για τον εντοπισμό της εντολής που προκαλεί το σφάλμα.

Στη συνέχεια θα αναφέρουμε τις βασικές λειτουργίες εκσφαλμάτωσης που προσφέρουν τα περισσότερα προγραμματιστικά περιβάλλοντα :

Εκφράσεις ελέγχου

Οι εκφράσεις ελέγχου (watch expressions) είναι χρήσιμες για την άμεση παρατήρηση τιμών μεταβλητών ή εκφράσεων κατά την εκτέλεση ενός προγράμματος. Ακόμη με μια έκφραση ελέγχου, υπάρχει η δυνατότητα να διακοπεί η εκτέλεση ενός προγράμματος, όταν αλλάξει το περιεχόμενο μιας μεταβλητής ή δεχτεί συγκεκριμένη τιμή. Με τις εκφράσεις ελέγχου παρατηρούμε τη συμπεριφορά μιας μεταβλητής ή μιας έκφρασης σε όλη τη διάρκεια εκτέλεσης του προγράμματος.

Σχ. 13.1. Εμφάνιση εκφράσεων ελέγχου

Σημεία διακοπής

Ένα σημείο διακοπής (breakpoint) διακόπτει την εκτέλεση ενός προγράμματος ακριβώς πριν από μια συγκεκριμένη εντολή. Τα σημεία διακοπής χρησιμοποιούνται για τον έλεγχο της κατάστασης των δεδομένων σε συγκεκριμένο σημείο του προγράμματος. Ορίζονται στον πηγαίο κώδικα με το μαρκάρισμα κάθε εντολής, στην οποία θέλουμε να διακόψουμε την εκτέλεση του προγράμματος.

Βήμα προς βήμα εκτέλεση

Μετά τη διακοπή εκτέλεσης από ένα σημείο διακοπής, παρέχεται η δυνατότητα να συνεχιστεί βήμα προς βήμα η εκτέλεση του προγράμματος. Με τη λειτουργία αυτή μπορούμε να εξετάσουμε βηματικά τα αποτελέσματα κάθε εντολής ή ρουτίνας του προγράμματος.

Σχ. 13.2. Σημείο διακοπής στον κώδικα της εφαρμογής

Ιστορικό

Με αυτή τη λειτουργία κατακρατείται ιστορικό (history) των τελευταίων εντολών που εκτελέστηκαν. Διαβάζοντας το ιστορικό αυτό μπορούμε να ελέγξουμε τη ροή του προγράμματος βαδίζοντας μπρος ή πίσω μέσα στον κώδικα.

Ιχνηλάτηση

Δίνει τη δυνατότητα αργής εκτέλεσης του προγράμματος, ενώ παράλληλα εμφανίζεται φωτισμένη η εντολή που εκτελείται κάθε φορά. Η ιχνηλάτηση (tracing) ενός προγράμματος ξεκινά από ένα σημείο διακοπής, που έχει εισαχθεί στο πρόγραμμα και λειτουργεί σε επίπεδο εντολής εκτελώντας κάθε φορά μια εντολή ή σε επίπεδο διαδικασίας εκτελώντας κάθε φορά όλη τη διαδικασία.

Λειτουργία άμεσης εκτέλεσης

Με τη λειτουργία άμεσης εκτέλεσης έχουμε τη δυνατότητα σε κάποιο σημείο διακοπής να πληκτρολογήσουμε και να εκτελέσουμε άμεσα οποιαδήποτε εντολή με σκοπό τη λογική αλλαγή της ροής εκτέλεσης του προ γράμματος.

Σχ. 13.3. Εμφάνιση των περιεχομένων των εκφράσεων σε λειτουργία άμεσης εκτέλεσης

Οι λειτουργίες των εργαλείων εκσφαλμάτωσης σε γραφικά περιβάλλοντα πραγματοποιούνται μέσα από ειδικά παράθυρα (π.χ. παράθυρο ελέγχου, παράθυρο άμεσης εκτέλεσης), ενώ στα υπόλοιπα εργαλεία από επιλογές μενού επιλογών που προσφέρει το περιβάλλον ανάπτυξης ή με ειδικές εντολές στον πηγαίο κώδικα.

Ένας προγραμματιστής που δεν είναι εξοικειωμένος και δεν γνωρίζει το χειρισμό των εργαλείων εκσφαλμάτωσης ή αν εργάζεται σε ένα περιβάλλον που δεν του παρέχει αντίστοιχα εργαλεία, μπορεί να υλοποιήσει αρκετές από τις λειτουργίες εκσφαλμάτωσης που αναφέρθηκαν, με την παρεμβολή εντολών εμφάνισης ή εκτύπωσης μηνυμάτων, τιμών μεταβλητών ή εκφράσεων.