ΕΡΓΑΣΤΗΡΙΟ 16. Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse

Σχετικά έγγραφα
Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Μικρή Εισαγωγή στο wxdev-c++

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Ανάπτυξη εφαρμογής Input-Output

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Αναπαραγωγή με αρχεία ήχου

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 3

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition

Τώρα ήρθε η ώρα για να αποκτήσετε το βασικό εργαλείο ανάπτυξης web εφαρμογών το GGTS.

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Εντολές κίνησης και στροφής στο προγραμματιστικό περιβάλλον Scratch. ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Οδηγίες εγκατάστασης και χρήσης Java σε προσωπικό υπολογιστή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

8o ΕΡΓΑΣΤΗΡΙΟ ΣΦΑΛΜΑΤΑ, ΜΟΡΦΟΠΟΙΗΣΗ ΥΠΟ ΟΡΟΥΣ ΚΑΙ ΓΡΑΦΗΜΑΤΑ

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗ I. 3o ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕ ΤΟ WORD

Αλλαγή προσανατολισμού εγγράφου σε κατακόρυφο ή οριζόντιο, αλλαγή μεγέθους σελίδας

(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας.

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία παρουσιάσεων με το PowerPoint

Πρόσθεση + Αφαίρεση - Πολλαπλασιασμός * Διαίρεση / Πηλίκο \ Υπόλοιπο Δύναμη

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εγχειρίδιο Χρήστη Φάση 1: Καταχώρηση Ειδικοτήτων

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΗΥ101: Εισαγωγή στην Πληροφορική

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης

Δραστηριότητα 1. Προγραμματίζω τον υπολογιστή (10 ώρες).

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Ανάπτυξη εφαρμογής Input-Output

Βασικές Λειτουργίες του Word

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ ΕΡΓΑΛΕΙΟΥ ΙΑΧΕΙΡΙΣΗΣ ΠΡΟΣΩΠΙΚΟΥ ΧΩΡΟΥ ΤΗΣ ALTEC SOFTWARE

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Πρακτική Άσκηση Εισαγωγή στο Frontpage

Using Custom Python Expression Functions

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ. Το Πανεπιστήμιο Αιγαίου, βασικός παράγοντας για την οικονομική και κοινωνική ανάπτυξη του Αιγαιοπελαγίτικου χώρου

Αλλαγή της εμφάνισης κειμένου: μέγεθος γραμματοσειράς, είδος γραμματοσειράς

Οδηγίες Χρήσης του Jitsi 2.0

Backup Premium Οδηγός χρήστη γρήγορης έναρξης

Ελέγξτε την ταινία σας

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

Εισαγωγή στο Dir Me Up

Έλεγχος ορθογραφίας. Ορισμός γλώσσας

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Αρχιτεκτονική Υπολογιστών Εργαστήριο

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Μπορείτε να δηλώσετε πίνακα οποιουδήποτε τύπου είτε βασικού είτε κλάσης:

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

Εισαγωγή στο πρόγραμμα DrJava 1

Σημειώσεις στο PowerPoint

Σύντομη περιγραφή 5. Για να ξεκινήσετε 6. Οι οθόνες του προγράμματος 8. Εγκατάσταση προγράμματος 6 Δημιουργία κωδικών χρήστη 7

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Μαθηματικές Πράξεις στην Visual Basic ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ηµιουργία Αρχείου Πρότζεκτ (.qpf)

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

BloodShed Dev C++ Οδηγίες Χρήσης (Συγγραφέας: Πάρις Πολύζος)

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα.

Hase οδηγίες χρήσης.

Εισαγωγή στο πρόγραμμα Microsoft word 2003

1. Το ηλεκτρικό ρεύμα και τα ηλεκτρικά κυκλώματα

Δημιουργία παιχνιδιού με το Game Maker

Εργαστήριο «Βάσεις Οικολογικών Δεδομένων και Εφαρμογές»

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

Εργαστήριο Γραφικών. Βοηθητικό Υλικό για την εκπόνηση των εργασιών Αφορά την 1 η Εργαστηριακή Άσκηση

Εισαγωγή στο περιβάλλον Code::Blocks

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Σημείωση για το προϊόν

1. ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ 2. ΚΑΤΑΡΤΙΣΗ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΜICROSOFT VISUAL STUDIO Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή

Εγχειρίδιο: Περιεχόμενα

ΕΡΓΑΣΙΑ 1 Ημερομηνία Ανάρτησης: 02/02/2017 Ημερομηνία Παράδοσης: 16/02/2017, 09:00 π.μ. Στόχος Ορισμός

(1) Επιλέξτε την εντολή QUERIES για να μπείτε στο περιβάλλον δημιουργίας

Αντικειμενοστρεφής Προγραμματισμός

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Ειδικά Θέματα Προγραμματισμού

Movie Maker (Δημιουργία βίντεο)

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

ΕΡΩΤΗΜΑΤΟΛOΓΙΟ ΣΧΟΛΕIΟΥ: ΕΓΧΕΙΡIΔΙΟ ΔΙΕΥΘΥΝΤΉ/ΝΤΡΙΑΣ. Doc.: CY7_CBA_ScQPrincipalManual.docx. Δημιουργήθηκε από: ETS, Core Α Contractor

Δραστηριότητα 3: Ρυθμίσεις Oικιακής Ομάδας Τοπικού Δικτύου Η/Υ σε WINDOWS 7 & 8

Εγχειρίδιο εγκατάστασης. Αθηνά Global

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης]

Πίνακας Περιεχομένων

Transcript:

ΕΡΓΑΣΤΗΡΙΟ 16 Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse 1. Δημιουργήστε ένα νέο project και ενσωματώστε το πρόγραμμα Fibonacci.java. 2. Βεβαιωθείτε ότι μεταγλωττίζει σωστά. Σχήμα 1: Adding Fibonacci.java 3. Τώρα προσθέστε ένα breakpoint (σημείο ελέγχου) μέσα στη μέθοδο main. Το breakpoint είναι ένα σημείο μέσα στον πηγαίο σας κώδικα (source code) στο οποίο θα σταματά η εκτέλεση του προγράμματος σας έτσι ώστε να μπορείτε να δείτε κάποιες πληροφορίες για την κατάσταση του προγράμματός σας. Για να δημιουργήσετε ένα breakpoint, πατήστε δεξί κλικ στην αριστερή πλευρά του Java editor στη γραμμή του κώδικα που θέλετε να σταματήσει η εκτέλεση του προγράμματός σας, (εναλλακτικά πατήστε διπλό κλικ στην αριστερή πλευρά του editor για να δημιουργήσετε ένα breakpoint.) Το κόκκινο τόξο στο Σχήμα 2 δείχνει σε ποιο σημείο θα κάνετε κλικ. Δημιουργείστε ένα breakpoint στη γραμμή που αρχικοποιείται η μεταβλητή n. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 1

Σχήμα 2: Προσθήκη breakpoint 4. Μια μπλε τελεία ( ) θα εμφανιστεί δίπλα από τη γραμμή του κώδικα που η εκτέλεση του προγράμματός σας θα παγώσει. Τώρα πρέπει να τρέξετε το πρόγραμμά σας μέσω του αποσφαλματιστή (debugger). Αυτό δουλεύει με παρόμοιο τρόπο όπως θα τρέχατε κανονικά ένα πρόγραμμα: πατ σητε δεξί κλικ πάνω στο αρχείο Fibonacci.java στο Package Explorer και διαλέξτε Debug As > Java Application Σχήμα 3: Τρέχοντας το πρόγραμμα στον debugger ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 2

5. Πιθανώς να λάβετε ένα μήνυμα σχετικό με switching perspectives αυτό είναι εντάξει. Πατήστε "Remember my decision" έτσι ώστε να μη δείτε αυτό το μήνυμα ξανά. Σχήμα 4: Επιβεβαιώνοντας το Perspective Switch 6. Πιο κάτω φαίνεται ένα στιγμιότυπο του debug perspective. Ας δούμε τις διάφορες απόψεις (views). Σχήμα 5: Στιγμιότυπο του debug perspective. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 3

o Debug: Δείχνει μια στοίβα των τρεχουσών μεθόδων. Αυτή τη στιγμή είμαστε μόνο μέσα στη συνάρτηση main του προγράμματος Fibonacci. Αν έτρεχαν κι άλλα προγράμματα θα μπορούσαμε να τα βλέπαμε εδώ. Επίσης υπάρχουν κάποια άλλα κουμπιά τα οποία θα καλύψουμε αργότερα. o Variables: δείχνει τις τιμές όλων των μεταβλητών που έχουν δηλωθεί. Εφόσον το breakpoint που βάλαμε σταματά πριν να δηλωθεί η μεταβλητή n, δεν τη βλέπουμε ακόμα. o Breakpoints: αυτή η άποψη (view) δείχνει τη θέση όλων των breakpoints μας μέσα στο κώδικα (μπορούμε να έχουμε πολλά διαφορετικά breakpoints). o Fibonacci.java: μπορούμε να δούμε που είμαστε μέσα στο κώδικά μας την ώρα που ενεργοποιείται το breakpoint 7. Στο Debug view, πατήστε το κουμπί Step Over ( ) για να πάτε στην επόμενη γραμμή. Παρατηρήστε ότι η νέα μεταβλητή n έχει δηλωθεί και έχει τη τιμή μηδέν. Όπως μπορείτε να φανταστείτε, ξέροντας τη τιμή των τιμών των μεταβλητών σας περιορίζετε την ανάγκη χρήσης της εντολής println μέσα στο κώδικά σας. Σχήμα 6: Stepping Over 8. Παρατηρήστε τώρα ότι είμαστε μέσα στο βρόχο Do και σταματημένοι στην επόμενη γραμμή. Το Step Over θα πάει στην επόμενη γραμμή μέσα στη μέθοδο και μετά θα σταματήσει (εκτός εάν υπάρχει κάποιος λόγος για να σταματήσει πριν πάει στην επόμενη γραμμή). Προσθέστε ένα breakpoint στην κλήση της μεθόδου printarray. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 4

Σχήμα 7: Το νέο breakpoint στο τέλος της μεθόδου. 9. Τώρα ας αφήσουμε το πρόγραμμα να τρέξει μέχρι να φτάσει στο επόμενο breakpoint. Πατήστε το κουμπί Resume ( ) μέσα στο Debug view για να συνεχιστεί η τρέχουσα εκτέλεση του προγράμματος. Παρατηρήστε τώρα ότι το πρόγραμμα δεν έχει τελειώσει, αλλά δεν κάνει τίποτε. Για παράδειγμα, αυτό συμβαίνει επειδή το πρόγραμμα ζητάει από το χρήστη ένα ακέραιο. Μπορούμε να δούμε ότι το πρόγραμμά μας (εδώ καλείται "Thread" "Νήμα") δεν είναι σταματημένο αλλά τρέχει μέσα στο Debug view. Τώρα λέει (Running), ενώ στο σχήμα 5 έλεγε (Suspended (breakpoint at line 6 in Fibonacci)). Σχήμα 8: Το νήμα είναι σε τρέχουσα κατάσταση (running state). 10. Στο Console view, πατήστε τον αριθμό 13 και μετά πατήστε enter. Σχήμα 9: Συνέχιση εκτέλεσης μετά την προτροπή για εισαγωγή δεδομένων. 11. Τώρα το σταμάτημα του προγράμματος γίνεται πριν την κλήση των μεθόδων getfiboarray και printarray. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 5

Σχήμα 10: Σταμάτημα του προγράμματος πριν την κλήση των μεθόδων. Προχωρώντας διαμέσου πολλαπλών μεθόδων Τώρα που έχουμε διέλθει από το μεγαλύτερο μέρος της μεθόδου main, θα προχωρήσουμε διαμέσου άλλων μεθόδων: Σιγουρευτείτε ότι έχετε ολοκληρώσει το προηγούμενο κεφάλαιο πριν ξεκινήσετε αυτό το κεφάλαιο. Έχουμε σταματήσει στη γραμμή που καλούνται οι μέθοδοι getfiboarray και printarray. Η γραμμή στην οποία έχουμε σταματήσει κάνει αρκετά. Εν πρώτοις, η μέθοδος getfiboarray εκτελείται, και έπειτα η μέθοδος printarray εκτελείται. Αν πατήσουμε το κουμπί Step Over, θα παραλείψουμε τη μετάβαση διαμέσου των μεθόδων. Για να μπούμε στο κώδικα μιας μεθόδου, χρειάζεται το κουμπί Step In ( ). Τώρα μπορείτε να πατήσετε το κουμπί Step In. Σχήμα 11: Περνώντας διαμέσου της μεθόδου getfiboarray. 1. Παρατηρείστε ότι το Variables view δείχνει νέες μεταβλητές. Αυτές είναι οι μεταβλητές που είναι τη παρούσα στιγμή σε εμβέλεια (in scope). Οι μεταβλητές που δηλώθηκαν στη μέθοδο main δεν είναι σε εμβέλεια αυτή τη στιγμή, όποτε δεν τις βλέπουμε. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 6

Σχήμα 12: Η εμβέλεια της μεθόδου getfiboarray. 2. Μπορούμε τώρα να προσθέσουμε breakpoints ή να προχωρήσουμε διαμέσου αυτής της μεθόδου. Ας χρησιμοποιήσουμε ένα άλλο τρόπο να διέλθουμε ενός προγράμματος χωρίς τη χρήση breakpoints ή διατρέχοντας γραμμή προς γραμμή: "Run to Line. Πατήστε δεξί κλικ στη γραμμή που έχει την εντολή: f[1] = 1; και επιλέξτε Run to Line. Αυτό δουλεύει χωρίς breakpoint η εκτέλεση του προγράμματος πάει μέχρι τη γραμμή που προσδιορίσαμε. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 7

Σχήμα 13: Run to line. 3. Τώρα υποθέστε ότι θέλουμε να τερματίσουμε την τρέχουσα μέθοδο και να πάμε πίσω στη μέθοδο που κάλεσε την τρέχουσα μέθοδο. Γι' αυτό, χρησιμοποιούμε το κουμπί Step Return ( ) στο Debug view. Πατήστε το κουμπί Step Return για να επιστρέψετε στη γραμμή (στη μέθοδο main) που κάλεσε που κάλεσε τη μέθοδο getfiboarray. Σχήμα 14: Step Return. 4. Πατώντας το κουμπί Step In θα μεταφερθούμε στη μέθοδο printarray. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 8

Σχήμα 15: Step Return. 5. Πατήστε Resume για να τερματίσετε το πρόγραμμα. Ειδικά Breakpoints και παρακολούθηση εκφράσεων Ειδικά Breakpoints Εκτός από το προσδιορισμό breakpoints σε συγκεκριμένους αριθμούς γραμμών, ο αποσφαλματιστής μπορεί να σταματήσει την εκτέλεση ενός προγράμματος όταν συμβεί μια εξαίρεση (exception). 1. Αρχικά βεβαιωθείτε ότι το πρόγραμμά σας δεν τρέχει. Στο Debug Perspective, πατήστε κλικ στο Breakpoints view και μετά πατήστε Remove All Breakpoints ( ). 2. Τώρα ας θέσουμε ένα breakpoint για όταν συμβεί η εξαίρεση ArrayIndexOutOfBounds. Στο Breakpoints view, πατήστε το κουμπί Add Java Exception Breakpoint ( ). Ένα παράθυρο όπως φαίνεται πιο κάτω θα εμφανιστεί για να επιλέξουμε την εξαίρεση: ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 9

Σχήμα 16: Επιλέγοντας μια εξαίρεση. 3. Το πρόγραμμα έχει εξ αρχής οριστεί να σταματά σε κάθε εξαίρεση. Αρχίστε να πληκτρολογείτε ArrayIndexOutOfBoundsException για να φιλτράρετε τα αποτελέσματα και να εμφανιστεί η εξαίρεση που θέλετε να επιλέξετε. Πατήστε Ok όταν θα έχετε επιλέξει την εξαίρεση java.lang.arrayindexoutofboundsexception ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 10

Σχήμα 17: Choosing an exception to break on. 4. Ας αλλάξουμε τον κώδικά μας έτσι ώστε να εγείρεται η εξαίρεση. Μέσα στη μέθοδο getfiboarray, αλλάξτε το σύμβολο < σε <=. Αυτό σημαίνει ότι ο βρόχος θα προσπελάσει ένα στοιχείο του πίνακα fibo το οποίο είναι εκτός ορίων του πίνακα. Σχήμα 18: Δημιουργώντας ένα σφάλμα. 5. Τρέξτε το πρόγραμμα Fibonacci ξανά στον αποσφαλματιστή (χρησιμοποιείστε το Run > Debug history > Fibonacci menu). Εισαγάγετε τον αριθμό 13 όταν σας ζητηθεί. Αν καθαρίσατε όλα τα breakpoints, ο αποσφαλματιστής θα σταματήσει όταν φτάσουμε στην εξαίρεση. Μπορείτε να δείτε ότι η εξαίρεση συνέβηκε μέσω του Debug view στο σημείο(suspended (exceptionarrayindexoutofboundsexception)) ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 11

Σχήμα 19: Δημιουργώντας ένα σφάλμα. 6. Αυτή η διαδικασία είναι πολύ χρήσιμη για να βλέπουμε τις τιμές όλων των μεταβλητών κατά την ώρα μιας εξαίρεσης. Πατήστε το κουμπί Resume για να αφήσετε το πρόγραμμα να τερματίσει. Παρακολούθηση εκφράσεων Εκτός από το ότι μπορούμε να παρακολουθούμε τις μεταβλητές μας μέσα στον αποσφαλματιστή, μπορούμε επίσης να παρακολουθούμε συγκεκριμένες εκφράσεις καθ όλη τη διάρκεια του προγράμματος. 1. Διορθώστε το σφάλμα που εσκεμμένα δημιουργήσατε προ ολίγου. 2. Προσθέστε ένα breakpoint στην αρχή της μεθόδου getfiboarray και ξεκινήστε τον αποσφαλματιστή. Δώστε ξανά σαν είσοδο τον αριθμό 13 για να οδηγηθείτε στο breakpoint μέσα στη μέθοδο getfiboarray. Σχήμα 20: Αποσφαλματίζοντας τη μέθοδο getfiboarray. 3. Προσέξτε ότι μερικές γραμμές πιο κάτω υπάρχει η έκφραση: f[i - 1] + f[i - 2]. Επιλέξτε την έκφραση αυτή και πατήστε δεξί κλικ και πηγαίνετε στο Watch. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 12

Σχήμα 21: Παρακολουθώντας μια έκφραση. 4. Προσέξτε ότι εμφανίζεται το Expression view. Η έκφραση αυτή τώρα παρακολουθείται. Σημειώστε ότι η έκφραση μας δεν έχει ακόμα τιμή. Πατώντας το (+) βλέπουμε ότι ούτε το f ούτε το i δεν έχουν ακόμα τιμή. Αυτό είναι επειδή έχουμε σταματήσει τη ροή του προγράμματος πριν την δήλωση του πίνακα f και της μεταβλητής i. Σχήμα 22: Παρακολουθώντας μια έκφραση. 5. Χρησιμοποιείστε το Step Over για να προχωρήσετε μέσα στη μέθοδο. Όταν φτάσετε στο βρόχο, παρατηρείστε ότι η έκφρασή μας ανανεώθηκε. Αυτό μπορεί να είναι ένα πολύ χρήσιμο εργαλείο για να παρακολουθούμε πολύπλοκες εκφράσεις. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 13

Σχήμα 23: Η έκφραση ανανεώνεται καθώς προχωρούμε μέσα στο πρόγραμμα. 6. Εάν θέλετε μόνο να peek σε μια συγκεκριμένη έκφραση, αλλά δεν την παρακολουθείτε, χρησιμοποιείστε την επιλογή εμφάνισης (Display option) μέσα στο μενού που εμφανίζεται με το πάτημα δεξιού κλικ. Σχήμα 24: Επιλογή εμφάνισης. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 14

Σχήμα 25: Εμφανίζοντας μια έκφραση. ΕΠΛ131 Εργαστήριο 1. Υπεύθυνοι Εργαστηρίων: Πύρρος Μπράτσκας, Παύλος Αντωνίου 15