בעיה בתוכנה ניתן לחלק לשני חלקים: בעיית תחביר (Syntax) שהיא בעיה בצורה בה רשמנו את הקוד, ובעיה לוגית שהיא בעיה בדרך בה ניסינו לממש בקוד את מטרות התוכנית.
בעיות תחביר קל יחסית למצוא VB מודיעה לנו במהרה על הבעיה, ואנו יכולים לתקנה.
אך כאשר מופיעה בעיה לוגית זה כבר סיפור אחר. בעיות לוגיות זכו לשם "באג" BUG כלומר חרק באנגלית. המקור לכך הוא שבעיית התוכנה הראשונה בהיסטוריה, בשנות החמישים, הייתה חיפושית מתה שנכנסה לתוך אחד ממחשבי הענק של אז והפריעה לפעולתו.
איך מזהים בעיה לוגית? כאשר מקבלים תוצאות שונות מהצפוי.
דוגמה: תוכנית לחישוב מכפלה בעזרת לולאה
נסו, למשל, ליצור תוכנית חדשה. התוכנית הבאה אמורה
לחשב את מכפלת המספרים מאחד עד חמש. שימו על הטופס
כפתור, והצמידו אליו את הקוד הבא:
כאשר תריצו את התוכנית, תראו שהתוצאה היא .5 למה?
במבט ראשון קשה לראות. לכן, נריץ את התוכנית במצב DeBug כלומר, במצב בדיקה נגד בעיות. כדי לעשות זאת, לוחצים על F8 כדי להריץ את התוכנית. במצב זה, נצטרך ללחוץ F8 למעבר על הקוד שורה אחר שורה.
דוגמא למסך שתראו :
אחרי שנריץ את התוכנית ונלחץ על הכפתור, נתחיל לעבור על הקוד. בכל שורה אנו יכולים לבדוק את ערך המשתנים שבה באמצעות סימונם ולחיצה על Shift+F9(לעיתים מספיק להציב עת העכבר על שם המשתנה).
כך נעבור בין השורות, ובכל שורה בה אנו רואים את ,C נבדוק את ערכו, נריץ את השורה (על-ידי הקשת F8) ושוב נבדוק את ערכו.
וראו פלא: בכל פעם שעוברים על השורה הרביעית: ,C=1 נקבע ערכו של C ל- 1 מצאנו את הבאג! בטעות אנו מאתחלים את C בכל פעם שאנו עוברים בלולאה!
כעת, צריך רק למצוא מקום אחר לאתחל את C
מחוץ ללולאה.
הקוד החדש כבר יעבוד כמו שצריך:
כאשר התוכניות גדלות, לא נוח לעבור על תוכנית שלמה בלחיצה על .F8 לשם כך קיימות נקודות העצירה.
נקודת עצירה היא סימון ל- VB לעצור במיקום מסוים בקוד התוכנית בעת הרצתה הסימון מופיע כנקודה אדומה משמאל לפקודה בקוד.
ניתן לראות את הנקודה האדומה במסך הדוגמא :
כדי ליצור נקודת עצירה, יש ללחוץ על הפס האפור שמשמאל לשורת הקוד. בצורה דומה גם מסירים את נקודת העצירה.
שימו לב כי הגדרות משתנים אינן יכולות להיות נקודות עצירה אחרי שמגדירים נקודות עצירה, מריצים את התוכנית כרגיל. כאשר VB יגיע לנקודת העצירה, הוא יעשה הפסקה, ויראה למתכנת היכן עצר. מכאן ניתן לבצע מספר דברים:
ניתן למצוא את ערכיהם של משתנים וחישובים שונים
(בעזרת ,Shift+F9 כמקודם).
ניתן לצעוד שורה אחר שורה, בעזרת .F8
ניתן להמשיך להריץ את התוכנית על-ידי .F5
ניתן לעצור כליל, ע"י לחיצה על כפתור העצירה (הנראה כמו Stop בווידיאו, בראש החלון).
אפשר לשנות חלק מהקוד תוך כדי ריצה כדי לבדוק שינויים.
בעזרת לחיצה עם הכפתור הימני על שורה מסוימת ניתן לבחור (בתת התפריט המופיע) להמשיך את ריצת התוכנית משורה זו (Set Next Statement)
בעזרת לחיצה עם הכפתור הימני על שורה מסוימת ניתן לבחור (בתת התפריט המופיע) להמשיך את התוכנית עד שורה זו (Run To Cursor)
בצורה זו ניתן לבדוק את התוכניות שאנו כותבים. כאשר מוצאים כי התוכנית מתנהגת בצורה שונה ממה שציפינו שם נמצא הבאג. שם יש לבדוק מחדש את ההיגיון שמאחורי הקוד שכתבנו אולי מסתתרת פה בעיה לוגית.