קביעת נקודות עצירה

Download Report

Transcript קביעת נקודות עצירה

‫חומרי עזר שהוכנו ע"י משתתפי קורס מורים מובילים תשע"א‬
‫ניתן להשתמש בחומרים לצורך הוראה בלבד‪.‬‬
‫אסור לפרסם את החומרים או לעשות בהם שימוש מסחרי כלשהו ללא קבלת אישור מראש מצוות הפיתוח‬
‫‪Java Debugging with Eclipse‬‬
‫הוכן על‪-‬ידי ויקי שנקרמן‬
.‫ שבאמצעותן נעקוב אחרי תהליך הדיבג‬JAVA -‫ניצור שתי מחלקות ב‬
MAIN ‫המחלקה‬
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
1. Counter counter = new Counter();
2. counter.count();
3. System.out.println("We have counted " + counter.getResult());
}
}
COUNTER ‫המחלקה‬
public class Counter {
private int result=0;
public int getResult() {
return result;
}
public void count() {
* for (int i = 0; i < 10; i++) {
result += i +1;
}
}
‫תהליך ניפוי שגיאות ‪DEBUGGING‬‬
‫נתייחס לשני סוגים של שגיאות ‪.‬‬
‫הסוג הראשון ‪:‬‬
‫שגיאות שמתגלות בזמן הקומפילציה‪.‬‬
‫ונגרמות כתוצאה מכתיבת הוראות שלא על פי חוקי השפה‬
‫הסוג השני ‪:‬‬
‫שגיאות שמתגלות בזמן שהתוכנית רצה ‪.‬‬
‫ונגרמות כתוצאה מהבעיות בלוגיקה של התוכנית‪.‬‬
‫תכנית יכולה לרוץ עד הסוף‪ ,‬אך הפלט שלה יהיה שגוי או‬
‫שהרצת התכנית תופסק באמצע ותופיע הודעת שגיאה‪.‬‬
‫על מנת לבודד את הקוד הבעייתי‪ ,‬ניתן להפעיל תוכנה המשלימה את‬
‫הקומפיילר ונקראת דיבאגר ‪. DEBUGGER‬‬
‫הדיבאגר מאפשר למתכנת להפעיל את התוכנה צעד צעד ולעקוב אחרי ביצוע‬
‫כל פקודה ופקודה‪ .‬כך ניתן לבדוק את ערכי המשתנים לפני ואחרי כל‬
‫פקודה ופקודה ולעקוב אחרי השינויים המתרחשים בהם בזמן ביצוע‬
‫התכנית‪.‬‬
‫על מנת להריץ תכנת הדיבגר יש לקבוע נקודות עצירה‪.‬‬
‫קביעת נקודות עצירה‬
‫‪breakpoints‬‬
‫כדי לסמן נקודת עצירה ‪ -‬הצבע על העמודה השמאלית ביותר‪.‬‬
‫בחלון שנפתח בלחיצה על המקש הימני יש לבחור באפשרות הראשונה‬
‫‪ Toggle Breakpoint‬או ללחוץ לחיצה כפולה על המקש השמאלי‪.‬‬
‫קביעת נקודת עצירה‬
‫אחרי שנקבעו נקודות עצירה ניתן להריץ את תכנת הדיבגר‬
‫הרצת תכנית הדיבג‪.‬‬
‫א‪ .‬סמן מחלקה עם פעולה ראשית‬
‫ב‪ .‬בחר ב‪DEBUG AS -‬‬
‫כאשר מריצים תכנית בדיבג בפעם הראשונה ‪ ECLIPSE‬מציע לעבור‬
‫מתצוגת ‪ JAVA‬לתצוגת ‪DEBUG‬‬
‫תצוגת‬
‫‪JAVA‬‬
‫תכנית תעצור בנקודת העצירה הראשונה שסימנו‪.‬‬
‫אם לא סימנו נקודות עצירה‪ ,‬לא נוכל לעקוב אחרי ביצוע‬
‫התכנית והיא תרוץ רגיל ‪.‬‬
‫‪DEBUGING‬‬
‫תצוגת‬
‫‪DEBUG‬‬
‫מקום‬
‫העצירה‬
‫מעקב אחרי‬
‫ביצוע‬
‫חלון‬
‫המשתנים‬
‫תכנית נעצרת במקום שקבענו‬
‫תהליכים שניתן לבצע בזמן הדיבג‬
‫‪ F8‬ניתן להריץ שורה בודדת של הקוד‪ .‬ההרצה תיעצר בשורה הבאה‪.‬‬
‫‪ F5‬אם הפקודה היא קריאה לפעולה‪,‬‬
‫ההרצה נכנסת לקוד הפעולה ועוצרת בפקודה הראשונה שבתוך הפעולה‪.‬‬
‫כך ניתן לעקוב אחרי ביצוע הפעולה שורה אחרי שורה‬
‫יש לבחור באפשרות זו אם חושדים שהבעיה נגרמת בתוך הפעולה‪.‬‬
‫‪ F6‬ניתן לבחור באופציה דלג על הפעולה‬
‫נבחר באפשרות הזאת כאשר יודעים בוודאות שאין בעיה בתוך הפעולה‬
‫‪ F8‬מריץ את התכנית עד לנקודת העצירה הבאה‬
‫חלון ‪VARIABLES‬‬
‫ערכי‬
‫המשתנים‬
‫בחלון הזה ניתן לראות את ערכי המשתנים במהלך‬
‫ביצוע התכנית‬
‫קביעת פורמט בו יוצגו ערכי המשתנים‬
‫בדיקת ערכים של קבועים ומשתנים סטטיים‬
: ‫שאלות‬
.‫ מחק את השורה הראושנה בפעולה הראשית‬.1
? ‫ שגיאת קומפילציה או שגיאת זמן ריצה‬: ‫איזה סוג של טעות נקבל‬
•
•
•
•
•
•
•
•
•
•
•
•
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
1. Counter counter = new Counter(); (1)
2. counter.count();
3. System.out.println("We have counted " + counter.getResult());
}
}
‫החזר את השורה הראשונה‪.‬‬
‫‪ .2‬שורה זו יוצרת עצם מסוג ‪ COUNTER‬ומשתמשת בפעולה בונה‪.‬‬
‫במחלקה ‪ COUNTER‬אין פעולה בונה‪ .‬באיזו פעולה בונה משתמשים‬
‫בשורה הראשונה?‬
‫‪ .3‬הוסף נקודות עצירה במקומות המסומנים ב‪*-‬‬
‫ותאר ערכים של המשתנה ‪ result‬בטבלת מעקב‪.‬‬