תרגיל - הגדרת נקודות עצירה

הושלם

נקודות עצירה משמשות במהלך ביצוע ההשהיה של תהליך איתור הבאגים. הדבר מאפשר לך לעקוב אחר משתנים ולבחון את הרצף שבו הקוד שלך מבוצע. נקודות עצירה הן דרך נהדרת להתחיל בתהליך איתור הבאגים.

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

מוקדם יותר במודול זה השלמת תרגיל שבו הפעלת יישום במאתר הבאגים. היישום מציג "הודעות ברכה" בלוח של מסוף איתור הבאגים. בסוף התרגיל, שמת לב שהקוד חוזר על ברכתו של אנדרו באופן בלתי צפוי.

בתרגיל זה, תשתמש בנקודות עצירה כדי לעזור לך לזהות את הבעיה.

  1. ודא שקובץ Program.cs מכיל את דוגמת הקוד הבאה:

    /* 
    This code uses a names array and corresponding methods to display
    greeting messages
    */
    
    string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" };
    
    string messageText = "";
    
    foreach (string name in names)
    {
        if (name == "Sophia")
            messageText = SophiaMessage();
        else if (name == "Andrew")
            messageText = AndrewMessage();
        else if (name == "AllGreetings")
            messageText = SophiaMessage();
            messageText = messageText + "\n\r" + AndrewMessage();
    
        Console.WriteLine(messageText + "\n\r");
    }
    
    bool pauseCode = true;
    while (pauseCode == true);
    
    static string SophiaMessage()
    {
        return "Hello, my name is Sophia.";
    }
    
    static string AndrewMessage()
    {
        return "Hi, my name is Andrew. Good to meet you.";
    }
    
  2. השתמש בכלי מאתר הבאגים של קוד Visual Studio כדי להגדיר נקודת עצירה בשורת הקוד הראשונה בתוך הלולאה foreach .

    צילום מסך המציג נקודת עצירה בקוד.

    תשר

    אחת האפשרויות הקלות להפעיל/לבטל נקודת עצירה היא לבחור (ללחוץ באמצעות לחצן העכבר השמאלי) את האזור מימין למספר השורה. ניתן להגדיר נקודות עצירה גם באמצעות התפריט Run , באמצעות קיצורי מקשים.

  3. בתפריט הפעלה , בחר התחל איתור באגים.

  4. שים לב שביצוע קוד מושהה בנקודות עצירה, ושקוד הקוד הנוכחי מסומן בעורך.

    צילום מסך המציג ביצוע קוד מושהה בנקודות עצירה.

  5. בסרגל הכלים של פקדי איתור באגים , בחר צעד לתוך.

    באפשרותך לרחף עם מצביע העכבר מעל הלחצנים בסרגל הכלים של פקדי איתור הבאגים כדי להציג את תוויות הלחצן.

  6. שים לב שביצוע קוד מתקדם אל שורת הקוד הבאה והשהה:

    messageText = SophiaMessage();
    

    שורת קוד זו מקצה את ערך ההחזרה של פעולת SophiaMessage השירות למשתנה המחרוזת messageText.

  7. התחשב לרגע מדוע בחירת שלב לתוך יצרה תוצאה זו.

    • לחצן צעד לתוך משמש להתקדם אל משפט ההפעלה הבא.
    • מאחר שהרכיב הראשון namesSophiaifSophia במערך הוא וההצהרה בודקת את השם, true הביטוי מוערך וביצוע הקוד עובר לבלוק הקוד של if המשפט.
  8. בסרגל הכלים של פקדי איתור באגים , בחר צעד לתוך.

  9. שים לב שביצוע קוד מתקדם לפעולת השירות SophiaMessage ולהשהות אותה.

    לחצן צעד לתוך כולל מתקדם לקוד ההפעלה הבא. שורת קוד ההפעלה הבאה אינה מספר השורה הבאה בקובץ, זהו המשפט הבא בנתיב הביצוע. במקרה זה, משפט קובץ ההפעלה הבא הוא נקודת הכניסה לפעולת SophiaMessage השירות.

  10. בסרגל הכלים של פקדי איתור באגים , בחר צא מהכלל.

  11. שים לב שביצוע קוד חוזר לקוד שנקרא פעולת השירות SophiaMessage והשהה.

  12. התחשב לרגע מדוע בחירת Step Out יצרה תוצאה זו.

    כאשר אתה נמצא בתוך פעולת שירות, לחצן Step Out משלים את השורות הנותרות של פעולת השירות הנוכחית ולאחר מכן חוזר להקשר הביצוע שהפעל את פעולת השירות.

  13. בסרגל הכלים של פקדי איתור באגים , בחר צעד לתוך.

  14. שים לב שביצוע קוד מתקדם אל שורת הקוד הבאה והשהה:

    messageText = messageText + "\n\r" + AndrewMessage();
    
  15. קח כמה רגעים כדי לשקול מדוע ביצוע מתקדם לקוד שורת קוד זה.

    על אף שהכניסה של הקוד מרמזת שקוד זה מהווה else if חלק מבלוק הקוד עבור המשפט, הוא אינו מהווה חלק מבלוק הקוד. שימוש בסוגריים מסולסלים {} להגדרת בלוקי הקוד if - else if עבור מבנה זה היה עוזר למנוע באג זה. כאשר הקוד נכתב, ההודעה של אנדרו תתווסף לכל messageText פעם שהלופ חוזר על ההודעה.

אמת את עדכוני הקוד שלך

לאחר שהבודדת בעיה בקוד שלך, עליך לעדכן את הקוד ולאחר מכן לוודא שהבעיה תוקנה.

  1. בסרגל הכלים של פקדי איתור באגים , בחר עצור.

  2. תקן את לוגיקת הקוד שלך כדקה להימשך דקה.

    יש לך כמה אפשרויות לפתרון הבעיה שזוהתה בקוד שלך. לדוגמה:

    • באפשרותך לשמור את שורות הקוד הקיימות ולהוסיף סוגריים מסולסלים {} למבנה if עבור כל בלוק קוד.

    • באפשרותך למזג את שתי שורות הקוד המופיעות אחרי המשפט else if הסופי, תוך יצירת משפט יחיד באופן הבא:

      else if (name == "AllGreetings")
          messageText = SophiaMessage() + "\n\r" + AndrewMessage();
      

    בכל מקרה, הקוד המעודכן שלך חייב לכלול את השיחה אל AndrewMessage בתוך בלוק הקוד כאשר name == "AllGreetings".

  3. בתפריט קובץ, בחר שמור.

  4. השתמש בכלי ממשק המשתמש של מאתר הבאגים כדי לנקות את נקודת עצירה שאתה מגדיר מוקדם יותר.

  5. בתפריט הפעלה , בחר התחל איתור באגים.

  6. ודא שהקוד שלך מפיק כעת את התוצאות הצפויות.

    Hello, my name is Sophia.
    
    Hi, my name is Andrew. Good to meet you.
    
    Hello, my name is Sophia.
    Hi, my name is Andrew. Good to meet you.
    
  7. בסרגל הכלים של פקדי איתור באגים , בחר עצור.

מזל טוב! השתמשת בהצלחה במאתר הבאגים של קוד Visual Studio כדי לעזור לך לבודד ולפתור בעיה לוגית.

תקציר

להלן כמה דברים חשובים שיש לזכור ביחידה זו:

  • השתמש בנקודות עצירה כדי להשהות את ביצוע הקוד במהלך הפעלת איתור באגים.
  • השתמש באפשרות צעד לתוך מסרגל הכלים של פקדי איתור הבאגים כדי לבחון את שורת קוד ההפעלה הבאה.
  • השתמש ב- Step Outמסרגל הכלים של פקדי איתור הבאגים כדי לעבור דרך השיטה הנוכחית ובחזור לשורת הקוד שנקראת פעולת השירות.