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

Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση
Περαιτέρω ανάπτυξε της ενότητας 'Εργαλεία'. Βάση αποτελεί το αγγλικό λήμμα.
(Περαιτέρω ανάπτυξε της ενότητας 'Εργαλεία'. Βάση αποτελεί το αγγλικό λήμμα.)
 
Σε γενικές γραμμές, οι γλώσσες προγραμματισμού υψηλού επιπέδου, όπως η [[Java]], καθιστούν ευκολότερη την αποσφαλμάτωση, επειδή έχουν χαρακτηριστικά, όπως χειρισμό εξαιρέσεων (exception handling), που κάνουν πραγματικές πηγές αλλοπρόσαλλης συμπεριφοράς ευκολότερα εντοπίσημες. Σε γλώσσες προγραμματισμού όπως η C ή η [[συμβολική γλώσσα]] (assembly), σφάλματα στον κώδικα μπορεί να προκαλέσουν σιωπηλά - μη εμφανή προβλήματα όπως memory corruption, και είναι συχνά δύσκολο να δούμε που συνέβη το αρχικό πρόβλημα. Σε αυτές τις περιπτώσεις, μπορεί να χρειαστούν εργαλεία εντοπισμού σφαλμάτων μνήμης (memory debugger tools).
 
Σε ορισμένες περιπτώσεις, γενικού σκοπού εργαλεία λογισμικού, τα οποία είναι ειδικά σχεδιασμένα για μια γλώσσα, μπορεί να είναι πολύ χρήσιμα. Αυτά μπορεί να είναι εργαλεία στατικής ανάλυσης κώδικα, τα οποία ψάχνουν για ένα πολύ συγκεκριμένο σύνολο γνωστών προβλημάτων, κάποιων κοινών και κάποιων σπάνιων, στον πηγαίο κώδικα. Όλα αυτά τα προβλήματα που ανιχνεύονται από αυτά τα εργαλεία, σπάνια θα εντοπίζονταν από ένα μεταγλωττιστή (compiler) ή διερμηνέα (interpreter), για αυτό αυτά τα εργαλεία δεν είναι συντακτικοί αναλυτές (syntax checkers) αλλά περισσότερο σημασιολογικοί αναλυτές (semantic checkers). Υπάρχουν εμπορικά και δωρεάν τέτοια εργαλεία για κάθε γλώσσα προγραμματισμού, ενώ κάποια ισχυρίζονται ότι μπορούν να ανιχνεύσουν περισσότερα από 300 διαφορετικά προβλήματα. Τέτοια εργαλεία μπορεί να είναι εξαιρετικά χρήσιμα στον έλεγχο πολύ μεγάλων δέντρων πηγαίου κώδικα (source trees), όπου δεν είναι πρακτικό να εξεταστεί κάθε μονοπάτι εκτέλεσης του προγράμματος. Ένα τυπικό παράδειγμα προβλήματος που ανιχνεύεται είναι η αναφορά σε μεταβλητή, η οποία συμβαίνει πριν ανατεθεί μια τιμή στη μεταβλητή. Ένα άλλο παράδειγμα θα ήταν η εκτέλεση ισχυρού ελέγχου τύπων (strong type checking), όταν η γλώσσα δεν το απαιτεί. Έτσι, αυτά τα εργαλεία είναι καλύτερα στον εντοπισμό πιθανών λαθών, έναντι πραγματικών. Ως αποτέλεσμα, έχουν τη φήμη του ψευδώς θετικού (false positive). Το παλιό πρόγραμμα [[Unix]] ''[[lint]]'' είναι ένα πρώιμο παράδειγμα.
 
Για τον εντοπισμό σφαλμάτων ηλεκτρονικού υλικού (π.χ., [[Υλικό υπολογιστών|υλικού υπολογιστών]]), καθώς και λογισμικού χαμηλού επιπέδου (π.χ., [[BIOS|BIOSes]], [[Οδηγός συσκευής|οδηγών συσκευών]]) και [[firmware]], όργανα όπως παλμογράφοι, αναλυτές λογικής ή in-circuit εξομοιωτές (in-circuit emulators - ICEs) χρησιμοποιούνται συχνά, μόνα τους ή σε συνδυασμούς. Ένας in-circuit emulator μπορεί να εκτελέσει πολλές από τις τυπικές εργασίες αποσφαλμάτωσης λογισμικού σε λογισμικό χαμηλού επιπέδου και firmware.
 
== Τεχνικές αποσφαλμάτωσης ==
39

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

Μενού πλοήγησης

Ονοματοχώροι

Παραλλαγές