Home Page על האתר מפת אתר מילון מונחים ספרים קישורים

מציאת בעיות DeBugging

בעיה בתוכנה ניתן לחלק לשני חלקים: בעיית תחביר (Syntax) שהיא בעיה בצורה בה רשמנו את הקוד, ובעיה לוגית שהיא בעיה בדרך בה ניסינו לממש בקוד את מטרות התוכנית.

בעיות תחביר קל יחסית למצוא VB מודיעה לנו במהרה על הבעיה, ואנו יכולים לתקנה.

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

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

Dim I As Integer
Dim C As Integer
For I = 1 To 5
C = 1
C = C * I
Next I
MsgBox "Result: " & C

כאשר תריצו את התוכנית, תראו שהתוצאה היא .5 למה?

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

דוגמא למסך שתראו :

לחץ לתמונה גדולה

אחרי שנריץ את התוכנית ונלחץ על הכפתור, נתחיל לעבור על הקוד. בכל שורה אנו יכולים לבדוק את ערך המשתנים שבה באמצעות סימונם ולחיצה על Shift+F9(לעיתים מספיק להציב עת העכבר על שם המשתנה).

כך נעבור בין השורות, ובכל שורה בה אנו רואים את ,C נבדוק את ערכו, נריץ את השורה (על-ידי הקשת F8) ושוב נבדוק את ערכו.

וראו פלא: בכל פעם שעוברים על השורה הרביעית: ,C=1 נקבע ערכו של C ל- 1 מצאנו את הבאג! בטעות אנו מאתחלים את C בכל פעם שאנו עוברים בלולאה!

כעת, צריך רק למצוא מקום אחר לאתחל את C מחוץ ללולאה.
הקוד החדש כבר יעבוד כמו שצריך:

Dim I As Integer
Dim C As Integer
C = 1
For I = 1 To 5
C = C * I
Next I
MsgBox "Result: " & C

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

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

נקודת עצירה היא סימון ל- VB לעצור במיקום מסוים בקוד התוכנית בעת הרצתה הסימון מופיע כנקודה אדומה משמאל לפקודה בקוד.

ניתן לראות את הנקודה האדומה במסך הדוגמא :

לחץ לתמונה גדולה

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

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

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