Python:
שימוש בדיבאגר

איך לעשות:

בואו נפרט את השימוש ב-pdb, המנפה השגיאות המובנה של Python. דמיינו קובץ, buggy.py, עם באג מחכים:

def add_one(number):
    result = number ++ 1
    return result

print(add_one(7))

כשתריצו את הסקריפט הזה, אתם מצפים ל8, אבל זה פשוט מזריק שגיאת תחביר. זה זמן המנפה שגיאות!

בטרמינל שלכם, הריצו:

python -m pdb buggy.py

תיכנסו למנפה שגיאות, וזה ייראה ככה:

> /path_to_file/buggy.py(1)<module>()
-> def add_one(number):

השתמשו בl(ist) כדי לראות יותר קוד, n(ext) כדי לעבור לשורה הבאה, או c(ontinue) כדי להמשיך להריץ את הסקריפט. כשתגיעו לשגיאה, ה-pdb יעצור ויאפשר לכם לבדוק.

לאחר שתתקנו את number ++ 1 לnumber + 1, הפעילו מחדש את המנפה שגיאות כדי לבדוק את התיקון. זכרו, חברים לא מניחים לחברים לכתוב קוד בלי רשת בטיחות. זהו.

צלילה עמוקה

בימי הביניים האפלים של התכנות (כלומר, לפני שסביבות פיתוח משולבות, או IDE-ים, היו בכל מקום), מנפי שגיאות היו לעיתים כלים עצמאיים שהיית משתמש בהם מחוץ לעורך הטקסט שלך. הם הגיעו להציל על ידי שהם אפשרו למתכנתים לבדוק את מצב התוכנה שלהם בנקודות ביצוע שונות.

נכון ל-2023, ה-pdb של Python אינו האופציה היחידה שיש. ייתכן שאנשים ישתמשו ב-IDE-ים כמו PyCharm או Visual Studio Code, שבהם יש מנפי שגיאות משוכללים מובנים. הם מוסיפים תכונות נוחות כמו נקודות עצירה שניתן להגדיר בלחיצה, במקום להקליד פקודות קריפטיות.

ואז יש את ipdb, חבילה שניתן להתקין דרך pip ושמביאה את הטובות שב-IPython לעולם הדיבאגינג. זה כמו pdb עם חיזוקי ביצועים, עם השלמה אוטומטית והדגשת תחביר.

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

ראו גם

לפרטים המלאים על מנפה השגיאות של Python, בדקו את:

אם אתם סקרנים לגבי חלופות, הקישורים הללו ישמשו אתכם היטב:

ציד באגים מהנה!