פוסט זה הוא מבוא לאחת הפעולות ההכי חשובות בתכנות - debugging. נראה כיצד לדבג תוכנית בסיסית ב-python, ולצורך כך ניעזר ב-ipdb (ראשי תיבות של Interactive Python Debugger). נראה בהתחלה כיצד להתקין את ipdb, נראה שימוש בסיסי ולאחר מכן דוגמה מפורטת למציאת באג בקוד רקורסיבי.
מה זה בכלל Debugging? Debugging היא פעולה של מציאת בעיות (באגים) בקוד, כלומר דברים שגורמים לקוד לא לעבוד כמו שצריך. לדעתי זוהי פעולה מאוד בסיסית שכל מתכנת חייב לשלוט בה היטב.
המודול argparse מאפשר לנו להוסיף בקלות ובמהירות טיפול ב-command line arguments לקוד Python אותו כתבנו. זוהו מודול נפוץ מאוד עם המון תיעוד באינטרנט, אבל חשבתי שיהיה נחמד לכתוב עליו הסבר יחסית מפורט לגבי השימוש הבסיסי.
הקדמה קצרה על מה זה Command line arguments באופן כללי, command line arguments הם פרמטרים שנותנים לתוכנית כדי להשפיע על האופן שבו היא תרוץ. למשל, עבור הפקודה הלינוקסית ls להצגת שמות הקבצים בתקייה הנוכחית, ניתן להוסיף את הדגל a- כדי להציג קבצים נסתרים.
הרבה פעמים בעת עבודה שוטפת ב-Linux אני נדרש להריץ דברים כ-sudo, בעיקר כאשר מדובר בהתקנות או שינויי קונפיגורציה. הבעיה היא שלרוב אני מריץ את הפקודה ורק לאחר מכן נזכר שצריך הרשאות root כדי להריץ אותה.
הרצת הפקודה האחרונה כ-sudo ב-bash יש פיצ’ר נחמד והוא שימוש ב-!!. פקודה זו מבצעת מחדש את הפקודה האחרונה שהורצה.
לכן, על מנת להריץ את הפקודה האחרונה כ-sudo ניתן להריץ:
sudo !! דוגמה לשימוש: