Your browser does not support JavaScript!

Αρχική    Live reverse debugging in LLDB  

Αποτελέσματα - Λεπτομέρειες

Προσθήκη στο καλάθι
[Προσθήκη στο καλάθι]
Κωδικός Πόρου 000430648
Τίτλος Live reverse debugging in LLDB
Άλλος τίτλος Αντίστροφη εκσφαλμάτωση κατά την εκτέλεση στον LLDB
Συγγραφέας Τσιατσιάνας, Ευάγγελος Δ.
Σύμβουλος διατριβής Σαββίδης, Αντώνιος
Μέλος κριτικής επιτροπής Μπίλας, Άγγελος
Πρατικάκης, Πολύβιος
Περίληψη Η εκσφαλμάτωση είναι μία απαραίτητη διαδικασία, η οποία καταλαμβάνει μεγάλο μέρος της καθημερινής εργασίας των προγραμματιστών. Παρ' όλα αυτά, η συντριπτική πλειοψηφία των προγραμματιστών βασίζεται σήμερα, ως επί το πλείστον, σε εργαλεία που έχουν παραμείνει σχεδόν ίδια τα τελευταία 20 χρόνια, δηλαδή διαδραστικούς εκσφαλματωτές με δυνατότητα λειτουργίας αποκλειστικά προς την κανονική κατεύθυνση ροής της εκτέλεσης του προγράμματος. Η αιτία εντοπίζεται στο ότι περισσότερο προχωρημένες λύσεις, οι οποίες παρέχουν υποστήριξη για αντίστροφη εκσφαλμάτωση, δεν χρησιμοποιούνται, διότι είτε έχουν περιορισμένο πεδίο δράσης και δυνατοτήτων είτε είναι άγνωστες στην ευρύτερη προγραμματιστική κοινότητα. Ως αποτέλεσμα, αποφασίσαμε να δημιουργήσουμε ένα πρότυπο σύστημα για αντίστροφη εκσφαλμάτωση κατά την εκτέλεση βασισμένο στον LLDB, έναν δημοφιλή, σύγχρονο και ευρέως χρησιμοποιούμενο διαδραστικό εκσφαλματωτή ανοιχτού κώδικα. Στόχος της εργασίας αυτής ήταν τόσο η σχεδίαση και υλοποίηση του ανωτέρω προτύπου όσο και η χρήση της ως μία σύντομη εισαγωγή στους αντίστροφους εκσφαλματωτές. Αρχικά, περιγράφουμε τη γενικότερη διαδικασία εκσφαλμάτωσης και παρουσιάζουμε εργαλεία που προσφέρουν οι παραδοσιακοί εκσφαλματωτές στους προγραμματιστές. Στη συνέχεια, συστήνουμε στον αναγνώστη τις επιπλέον λειτουργίες που προσφέρονται από τους αντίστροφους εκσφαλματωτές και παρατηρούμε πώς οι τελευταίοι μεταβάλλουν και βελτιώνουν τη διαδικασία εκσφαλμάτωσης. Επιπλέον, συζητούμε σχετικά με τις ποικίλες μεθόδους και τρόπους προσέγγισης που μπορούν να ακολουθηθούν για την υλοποίηση ενός αντίστροφου εκσφαλματωτή, ενώ παραθέτουμε και τις αδυναμίες καθενός τύπου εκσφαλματωτή. Ακολουθεί μία σύντομη επισκόπηση υπαρχόντων λύσεων, τόσο κατά την εκτέλεση όσο και εκ των υστέρων, εκσφαλμάτωσης, κατηγοριοποιημένων βάσει του πεδίου δράσης τους και της προσέγγισης που ακολουθούν. Έπειτα, ο αναγνώστης συναντά μερικούς απαραίτητους τεχνικούς όρους, προτού προχωρήσει στην παρουσίαση της σχεδίασης και της μεθόδου υλοποίησης που επιλέχθηκε για το σύστημα που παρουσιάζουμε. Ξεκινούμε την παρουσίαση του συστήματος με την αρχιτεκτονική του LLDB σε επίπεδο κώδικα, εστιάζοντας στις δομές δεδομένων που αναπαριστούν το πρόγραμμα υπό εκσφαλμάτωση, καθώς και σε εκείνες που προστέθηκαν προκειμένου να εισάγουμε υποστήριξη για αντίστροφη εκσφαλμάτωση κατά την εκτέλεση. Κατόπιν, εξηγούμε τη μέθοδο που ακολουθήθηκε με στόχο να προστεθεί η λειτουργία αντίστροφης εκσφαλμάτωσης κατά την εκτέλεση στον LLDB και αναφέρουμε τις εσωτερικές αλλαγές που απαιτήθηκαν, προκειμένου να φιλοξενηθεί η νέα λειτουργικότητα. Ακόμη, αναλύουμε πώς ο αντίστροφος εκσφαλματωτής λαμβάνει στγμιότυπα και καταγράφει την εκτέλεση του υπό εκσφαλμάτωση προγράμματος, καθώς και τη δομή των στιγμιοτύπων αυτών, τα οποία δύνανται να επαναφέρουν την εκτέλεση σε παρελθοντική κατάσταση δίχως ανάγκη τερματισμού του προγράμματος. Φροντίζουμε να εξηγήσουμε σε επίπεδο κώδικα πώς ο αντίστροφος εκσφαλματωτής χειρίζεται μεταβολές τιμής σε μεταβλητές, καταχωρητές και θέσεις μνήμης κατά τη λήψη και επαναφορά στιγμιοτύπων και συζητούμε όλα τα μέτρα που έχουν ληφθεί προκειμένου να ελαχιστοποιήσουμε την επιβάρυνση σε επίπεδο επιδόσεων και μνήμης, διατηρώντας παράλληλα την ακρίβεια και την ορθότητα της καταγεγραμμένης εκτέλεσης. Τέλος, αναδεικνύουμε τη δύναμη του αντίστροφου εκσφαλματωτή μέσω ενός αριθμού σεναρίων και αξιολογούμε το συνολικό αποτέλεσμα της εργασίας, προτού παραθέσουμε τις λειτουργίες που λείπουν, αλλά έχουν ήδη προγραμματιστεί για μεταγενέστερη έκδοση του εκσφαλματωτή.
Φυσική περιγραφή iv, [57] σ. : σχεδ., πιν., εικ. (μερ. εγχρ.) ; 30 εκ.
Γλώσσα Αγγλικά
Θέμα Developer tools
Reverse execution
Αντίστροφη εκτέλεση
Εργαλεία προγραμματισμού
Ημερομηνία έκδοσης 2020-07-24
Συλλογή   Σχολή/Τμήμα--Σχολή Θετικών και Τεχνολογικών Επιστημών--Τμήμα Επιστήμης Υπολογιστών--Μεταπτυχιακές εργασίες ειδίκευσης
  Τύπος Εργασίας--Μεταπτυχιακές εργασίες ειδίκευσης
Εμφανίσεις 819

Ψηφιακά τεκμήρια
No preview available

Κατέβασμα Εγγράφου
Προβολή Εγγράφου
Εμφανίσεις : 9