
הטקסט המלא של הדקות הראשונות בהרצאה «שימוש בדיבאגר בג'אווה» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא חשוב מאוד וזה נושא השימוש בדיבאגר. הדיבאגר זהו מנגנון שמאפשר לנו לבדוק את הקוד שלנו.
המנגנון הזה מאפשר לנו להריץ את הקוד שורה שורה ולצפות במשתנים שאנחנו מתעסקים איתם ולראות האם בעצם אנחנו כותבים קוד נכון, האם התוכנית עושה מה שעושה תוך כדי הריצה של התוכנית ממש שורה אחר שורה.
אז איך אנחנו בדיוק משתמשים במנגנון הזה? לצורך כך בואו נייצר כאן איזושהי פונקציה והאמת בואו נחזיר איזה אינטג'ר נקרא לה פונקציה getSam נקבל איזשהו מערך לתוך הפונקציה יש לנו פה איזשהו משתנה בואו נקרא לו summary נכניס לתוכו 0 נרוץ בלולאת 4 למרות שאנחנו יכולים forEach נשתמש פה לצורך הדוגמה ב-4 i שווה 0 כי אנחנו מערך i קטן מ-arrayLength ובואו נניח שתוך כדי הכתיבה בטעות
רשמנו length מינוס 1 i++. אוקיי, זאת כמובן שגיאה לוגית כי הערך שיוחזר הוא לא באמת הסכום של כל איברי המערך. בואו ניקח את ה-summary ונבצע פלוס שווה ל-array במיקום i ולבסוף נחזיר את ה-summary.
אז יש לנו כאן פונקציה שאמורה לחשב ולהחזיר את הערך המקסימלי, סליחה, את הסכום של איברי המערך, והיא לא תבצע את זה, היא כמובן תחזיר שגיאה, ואנחנו רוצים כמובן קודם כל לבדוק אם היא עובדת.
ניקח כאן מערך Numbers ונייצר איזשהו מערך בצורה כזאת, 10, 20, 30. נקרא לפונקציה ונחזיר את הסכום, סם, נשלח את המערך numbers ובואו נציג כאן את הסכום.
נריץ ונראה שהוא אומר לנו שהסכום זה 30, שזה כמובן לא נכון, הסכום לא 30, הסכום הוא 60. ובמקרה הזה יכול להיות שאנחנו נגיע לעצמנו, רגע, יש פה איזשהו באג, אני רוצה לברר בדיוק מה הבאג, אני יכול לרפרף בפונקציה ולנסות לאתר את הבאג במהירות ואם אני לא מצליח אז אני מכניס לשימוש את הדיבאגר.
מנגנון הדיבאגר אומר דבר כזה אני מסוגל לרוץ שורה שורה תגיד לי איפה אתה רוצה שאני אעצור בואו נעצור ממש בשורה הראשונה איך עושים את זה הולכים לאזור הזה ופשוט לוחצים דאבל קליק ויש לנו מעין נקודה כחולה קטנה דאבל קליק נוסף מעלים אותה הנקודה הזאת נקראת ברייק פוינט נקודת עצירה ברגע שאנחנו נריץ את מנגנון הדיבאגר
והוא ייתקל בברייק פוינט הוא יעצור ויאפשר לנו להתבונן בכל המשתנים בשלב הזה אנחנו יכולים לשים איפה שאנחנו רוצים ברייק פוינט. בואו נשים גם פה ברייק פוינט, בואו נשים גם פה ברייק פוינט.
ובכל פעם שאנחנו נריץ את התוכנית אז הוא יעצור בברייק פוינט. אנחנו יכולים לעצור בברייק פוינטים ואנחנו יכולים לרוץ שורה שורה.
איך אנחנו מריצים את התוכנית במצב דיבאגר? אם אנחנו נריץ קונטרול F11 כמו תמיד אנחנו לא נקבל עצירות בברייק פוינטים. אנחנו צריכים ללחוץ על הג'וק הזה, בואו נלחץ עליו אז התוכנית עוברת למצב די-באגר, נגיד לסוויץ', והנה אנחנו רואים שהתוכנית עוצרת לנו ממש כאן
בברייק פוינט הראשון. אם אנחנו נגיד לתוכנית לרוץ, ריזיום, אנחנו נראה שהיא עוצרת לנו בברייק פוינט השני. אם אנחנו נריץ, אנחנו נראה, טוב, זה בגלל שזה לולאה אז הוא ממשיך לעצור שם, אבל הנה הוא עוצר לנו בברייק פוינט השלישי.
אז קודם כל, בואו נמשיך ונסיים את התוכנית. קודם כל אנחנו רואים שאנחנו יכולים לעצור בכל מיני מקומות בתוכנית. דבר נוסף, בואו נריץ רגע שוב פעם את התוכנית על ידי הג'וק, הבאג הזה שיש פה.
אנחנו יכולים לראות כאן את רשימת הברייק פוינטים ששמנו ולבטל ברייק פוינט או להחזיר אותו. אתם רואים שאני כרגע מבטל את הברייק פוינט השלישי, כאן אני מבטל את השני, כאן אני מבטל את הראשון.
אז אנחנו יכולים לשלוט על איזה ברייק פוינטים אנחנו רוצים או לא רוצים להשתמש בהם. בואו רגע נעצור את התוכנית, נוריד רגע את הברייק פוינט השני והשלישי ונישאר רק עם הברייק פוינט הראשון.
כאן נריץ את התוכנית עם הבאג הזה, הג'וק הזה שמתאר באג, ואנחנו נמצאים עכשיו בשורה הראשונה. אנחנו רואים אותה צבועה בירוק. מה אנחנו רואים?
אנחנו רואים כאן variables. variables זה כל המשתנים שכרגע נפתחו בתוכנית. בינתיים רק הארגס הזה נפתח. אם אנחנו נעבור לשורה הבאה ויש לנו את שני החבר'ה האלה שמסוגלים לקפוץ לשורה הבאה, תכף נראה מה ההבדל ביניהם.
כרגע נשתמש בזה, בסטפ-אובר. אז אנחנו רואים שהוא גם עכשיו פתח לנו את ה-numbers ואנחנו יכולים לפתוח את ה-numbers ולהסתכל על כל הערכים שלו.
10, 20, 30. אנחנו רואים פה את ה-sum. אם אנחנו שוב פעם לוחצים על step-over אנחנו רואים שהוא התקדם הלאה והנה אנחנו רואים שיש לנו גם את ה-sum שהוא 30.
אז מה זה step over? step over זה בעצם קפוץ לפקודה הבאה, אבל אל תיכנס לפונקציות, אלא רק תבצע אותן. אנחנו רואים שיש לנו פה את ה-get sum, שלא באמת נכנסנו ודיבגנו את הפונקציה, אבל כן ביצענו אותה והיא החזירה לנו 30. אז זה בעצם step over.
החבר שלו זה step into. step into אומר, אם אתה מסמן פונקציה, סטפ אינטו ייכנס לתוך הפונקציה שורה שורה וידבק גם אותה.
גם את זה אנחנו רוצים לראות. אז בואו בשלב הזה נעצור ונריץ שוב פעם. אנחנו עוצרים בנקודת עצירה והפעם אנחנו לוחצים על סטפ אינטו.
סטפ אינטו במקרה הזה לא ייכנס לשום פונקציה מפני שאין לנו פונקציה כאן. אז אנחנו פשוט נעבור לשלב הבא. אבל כאן step into יגרום לכניסה לתוך getSum.
בואו נלחץ על step into ונראה שקפצנו מיידית לתוך getSum. כאן ה-variables הם אחרים. כל ה-variables הקודמים שהיו לנו נעלמו. היו לנו מקודם args ו-numbers, הם נעלמו.
נשאר לנו עכשיו ARR כי אנחנו נמצאים בסקופ