PracticU

Debug View

בלי כתוביותעם כתוביות
PracticU › קורס WCF - תקשורת למתקדמים בדוט-נט › Debug View
מילון מושגים:
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.
שרת - מחשב או תוכנה שמספקים שירות למחשבים אחרים (לקוחות) ברשת, למשל אחסון קבצים, אתר אינטרנט או מסד נתונים, ומגיבים לבקשות שלהם.
Visual Studio - סביבת פיתוח משולבת (IDE) של מיקרוסופט לכתיבה, ניפוי והרצה של קוד, בעיקר בשפות .NET.
שירות - תוכנה שרצה ברקע ומספקת פונקציונליות לרכיבים אחרים, לרוב ללא ממשק משתמש, ומופעלת אוטומטית עם המערכת.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
חריגה - מצב שגיאה שמתרחש בזמן ריצת התוכנית ומפסיק את המהלך הרגיל, אלא אם הקוד תופס ומטפל בו.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.

Debug View
Debug הוא כלי לכתיבת הודעות בתוך הקוד, והוא שימושי גם בשרת שאין עליו Visual Studio. הבעיה היא שהודעות Debug לא נכנסות לגרסת Release.
שימוש בסיסי
1. Debug.Write: כותבים הודעה בכל שלב, כדי לדעת איפה הקוד נמצא. בדוגמה: בתחילת ה-Main, לפני יצירת ה-service host ולפני ה-open.
2. בתוך ה-catch: שולחים את האובייקט של החריגה (Debug.WriteLine(ex)), כדי לראות את השגיאה ואת השלב שבו הקוד נעצר.
3. בתוך השירות: גם בתוך הפונקציה add כותבים הודעה, למשל על חיבור המספרים.
איפה רואים את ההודעות
4. חלון Output: בזמן הרצה בתוך Visual Studio ההודעות מופיעות בחלון Output.
5. DebugView: תוכנה חינמית שמציגה את הודעות הדיבוג בלי Visual Studio. היא מתאימה לשרת שבו לא מתקינים את הסביבה.
בעיית ה-Release
6. למה ההודעות נעלמות: בגרסת Release השורות של מחלקת Debug לא נכנסות לקובץ ההרצה וקובצי ה-DLL. לכן ב-DebugView לא מופיע דבר.
7. הפתרון: מחליפים את Debug ב-Trace בכל הפרויקט, בעזרת Find and Replace. ל-Trace יש את אותן פקודות, אבל הקריאות שלה נשארות בקובץ ההרצה גם ב-Release, ולכן DebugView מציג אותן.
כך אפשר לבדוק מה קורה בשרת שרץ, גם כשאין עליו סביבת פיתוח.
השיעור הבא בקורס: Untyped Faults

פרקי ההרצאה: Debug View

  1. 00:00

    דיבאג כשהשירות רץ באוויר

  2. 00:56

    מחלקת Debug של System.Diagnostics

  3. 01:32

    כתיבת הודעות Debug.Write בהוסט

  4. 02:35

    רישום חריגות בבלוק catch

  5. 03:17

    Debug.Write גם בפונקציית add

תמלול ההרצאה: Debug View

הטקסט המלא של הדקות הראשונות בהרצאה «Debug View» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:19

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

  2. 00:29

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

  3. 00:42

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

  4. 00:56

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

  5. 01:22

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

  6. 01:42

    אז בואו נראה שיטה פשוטה להשתמש עם הכלי הזה. בואו נכתוב כל מיני הודעות בדיוק איפה אנחנו נמצאים, אנחנו כרגע בסטארטינג מיין. כאן אנחנו מבצעים dbug.write יש לנו creating רוצים ל-string לעשות את זה creating service host object כאן אנחנו פותחים אותו dbug.write opening service host האמת שאם אנחנו כותבים opening אז עדיף שזה יהיה

  7. 02:27

    לפני אם זה creating עדיף שזה יהיה לפני שאם תהיה בעיה נדע בדיוק מה קרה לפי השורה שנעצרה לדוגמה בואו נלך לאזור של הcatch זה מאוד חשוב במידה והייתה שגיאה אנחנו רוצים לראות אותה debug right ובגלל שאנחנו יכולים לשלוח object אז אפשר לשלוח פשוט את כל הex בואו נלך לאזור הזה ונרשום פה debug.right ויש לנו כאן את closing service host אז אנחנו כתבנו איפה שאנחנו רוצים את כל המידע בשביל לראות אותו פיזית

  8. 03:14

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

  9. 03:21

    כלומר, בואו נלך לפונקציית add שאנחנו הולכים לקרוא לה, ונבצע גם כאן debug.write ויש לנו כאן

לקורס המלא: קורס WCF אונליין בדוט-נט

ההרצאה הקודמת: Activity Tracing

ההרצאה הבאה: Untyped Faults

הרצאות קשורות מקורסים אחרים

  • מצב Debug מצב Release
  • VIEW עם Check
  • View Group
  • דיבאג בג'אווה - Debug Mode

קורסים נוספים במסלול

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • פרויקט מעשי ב-#C - תוכנת צייר
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C