C#:
שימוש במנפה שגיאות

איך לעשות:

דמיינו שיש לכם תוכנית קטנה שלא מתנהגת כראוי:

static void Main()
{
    int result = Sum(1, 2);
    Console.WriteLine(result);
}

static int Sum(int a, int b)
{
    return a + a; // אופס, אמור להיות a + b
}

באמצעות מנפה של Visual Studio, הגדרו נקודת עצירה על ידי לחיצה על חלק השמאלי ליד return a + a;. כשאתם מריצים את התוכנית (עם F5), הביצוע יעצר שם. עברו על משתנים כדי לבדוק את ערכיהם, או השתמשו בחלון המיידית כדי להעריך ביטויים. תראו שa הוא 1 וb הוא 2, אבל a + a אינו הסכום שציפינו לו. שנו אותו לa + b, המשיכו להריץ (F5), והנה, הקונסול פולטת 3.

צלילה לעומק

ההיסטוריה של ניפוי באגים חוזרת אחורה עד לשנות ה-40, כשבאג אמיתי (עש) נמצא במחשב מוקדם. מנפי היום, כמו זה שב-Visual Studio, מספקים סוויטת תכונות עוצמתית, כולל נקודות עצירה, ביצוע צעד אחר צעד, חלונות צפייה, ועוד.

אלטרנטיבות למנפה של Visual Studio כוללות אפשרויות קוד פתוח כמו GDB לשפות מסוג C או pdb ל-Python, וסביבות פיתוח משותפות כמו JetBrains Rider או VS Code שמציעות כלים לניפוי באגים ל-C# ושפות אחרות.

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

ראה גם