Διαφορά μεταξύ των αναθεωρήσεων του «Αποσφαλμάτωση»

διαδικασία+μερικές τεχνικές+(Πληροφορική-επέκταση)
μ
(διαδικασία+μερικές τεχνικές+(Πληροφορική-επέκταση))
 
Σε Λειτουργικό σύστημα Linux αυτό γίνεται με την προσθήκη της παραμέτρου -g στην γραμμή εντολών που προκαλεί την μετάφραση του προγράμματος γραμμένου σε Ansi C. Ο εκσφαλματωτής καλείταi εκτελώντας την εντολή sdb ή adb ή gdb ή dbx.
 
== Διαδικασία αποσφαλμάτωσης ==
Παρόλο που κάθε σφάλμα απαιτεί ξεχωριστή προσέγγιση γενικά ακολουθούνται τα εξής βήματα:
# Επανάληψη του προβλήματος
# Απομόνωση του σημείου που εμφανίζεται το σφάλμα
# Αναγνώριση της αιτίας που το προκαλεί
# Διόρθωση του σφάλματος
# Επιβεβαίωση της διόρθωσης
 
=== Επανάληψη του προβλήματος ===
Το πρώτο βήμα για την αποσφαλμάτωση είναι, συνήθως, η επανάληψη του προβλήματος. Αυτό μπορεί να ακούγεται ειρωνικό αλλά είναι αρκετά σημαντικό και πολλές φορές ακατόρθωτο αν το σφάλμα προέρχεται από τη χρήση του προγράμματος σε περιβάλλον πολλών ταυτόχρονων χρηστών ή σε προγράμματα που χρησιμοποιούν παράλληλη επεξεργασία.
 
=== Απομόνωση του σημείου που εμφανίζεται το σφάλμα ===
Μετά τη φάση της επανάληψης του προβλήματος, συνήθως χρησιμοποιείται η τεχνική του "διαίρει και βασίλευε", η διαίρεση, δηλαδή, του κώδικα σε επιμέρους λειτουργικά κομμάτια, όσο το δυνατόν μικρότερα, και ο έλεγχος αν κάποιο από αυτά προκαλεί πρόβλημα.
 
Αν ο έλεγχος αυτός "αποδώσει", αν δηλαδή βρεθεί ποιο τμήμα προκαλεί το πρόβλημα, τότε το έργο της αποσφαλμάτωσης μειώνεται σημαντικά.
 
=== Αναγνώριση της αιτίας που το προκαλεί ===
Στο σημείο αυτό χρησιμοποιούνται διάφορες τεχνικές για την αναγνώριση της αιτίας. Το σφάλμα μπορεί να προέρχεται από λάθη στην πληκτρολόγηση του κώδικα ή από λογικά σφάλματα που είναι και τα πλέον δύσκολα να βρεθούν.
 
=== Διόρθωση του σφάλματος ===
Αν έχει εντοπιστεί το πρόβλημα και η αιτία του τότε προχωράμε στην εύρεση λύσης. Τις περισσότερες φορές αυτό σημαίνει τη διόρθωση του κώδικα. Αυτό δεν συμβαίνει πάντα. Δεν είναι λίγες οι φορές που μεγάλοι κατασκευαστές αναγνώρισαν την ύπαρξη προβλήματος αλλά αποφάσισαν να μην το διορθώσουν. Οι λόγοι μπορεί να οφείλονται είτε στην έλλειψη κατάλληλου προσωπικού είτε στην εγκατάλειψη του έργου από τον ιδιοκτήτη, είτε στο ασύμφορο οικονομικό βάρος που θα υπάρξει.
 
Σε αυτό το σημείο υπάρχει και η τεράστια διαφορά μεταξύ προγραμμάτων κλειστού και ανοικτού κώδικα. Αν και ο ιδιοκτήτης του κώδικα έχει εντοπίσει και έχει δημοσιεύσει τον τρόπο επίλυσης του σφάλματος αν δεν θέλει να το διορθώσει οι κάτοχοι των αντιγράφων του προγράμματος μένουν "ξεκρέμαστοι". Στα προγράμματα ανοικτού κώδικα ο καθένας μπορεί να διορθώσει το σφάλμα έστω και μόνο για δική του χρήση.
 
=== Επιβεβαίωση της διόρθωσης ===
Η διαδικασία ολοκληρώνεται με τον έλεγχο της νέας, διορθωμένης, έκδοσης. Επιπλέον, ίσως χρειαστεί να ερευνηθεί αναλυτικότερα το πρόγραμμα, προκειμένου να διαπιστωθεί αν η διόρθωση δεν επέφερε άλλες ανεπιθύμητες παρενέργειες.
 
== Τεχνικές αποσφαλμάτωσης ==
 
=== Χρήση προκαθορισμένων τιμών ===
Τεχνική με την οποία δεν χρησιμοποιούνται οι πραγματικές τιμές που θα έπρεπε να εισαχθούν αλλά προκαθορισμένες ελεγχόμενες τιμές που συνήθως είναι και ''ακραίες''. Για παράδειγμα σε ένα πρόγραμμα για τάβλι αντί να καλείται η συνάρτηση που "ρίχνει τα ζάρια" και επιστρέφει τη "ζαριά" μπορεί να καλείται ο χρήστης να δώσει αυτός τα νούμερα ή να τα νούμερα να παίρνονται από κάποιο σταθερό, γνωστό πίνακα. Με αυτόν τον τρόπο απομακρύνεται (ή επιβεβαιώνεται) το ενδεχόμενο να υπάρχει σφάλμα στο τμήμα του προγράμματος που δημιουργεί τυχαίες τιμές.
 
=== Χρησιμοποίηση ειδικών σημείων ελέγχου ===
Τεχνική με την οποία γίνεται χρήση ειδικών σημείων ελέγχου μέσα στο πρόγραμμα όπου είτε καταγράφονται είτε εκτυπώνονται στην οθόνη ή σε εκτυπωτή οι τιμές διαφόρων μεταβλητών, που κάτω από κανονικές συνθήκες εκτέλεσης του προγράμματος δεν εμφανίζονται στον τελικό χρήστη.
 
Απλοϊκό παράδειγμα μπορεί να είναι η εμφάνιση της πλήρους αλλαγής που καλείται ο χρήστης να αποφασίσει αν θα την κάνει. Αν π.χ. ένα πρόγραμμα σε κανονικές συνθήκες απλά εμφανίζει στον χρήστη αν θέλει να συνεχίσει με την καταχώρηση, για λόγους αποσφαλμάτωσης, μπορεί να του παρουσιάζει και όλα τα προς καταχώρηση στοιχεία, με την ηλεκτρονική μορφή που θα καταχωρηθούν, επιπλέον από τη μορφή που τα "πέρασε" ο χρήστης.
 
{{Πληροφορική-επέκταση}}
 
[[Κατηγορία:Επιστήμη υπολογιστών]]
3.258

επεξεργασίες