Remote Debugging

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

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

 

מה זה Remote Debugging?

Remote Debugging בעצם מאפשר לנו להריץ דרך ה-Visual Studio במחשב האישי שלנו את האתר או את האפליקציה שנמצאת על מחשב מרוחק שלא תמיד יש עליו Visual Studio או אפשרות להתקין עליו Visual Studio, ובעצם, על ידי כך, לראות נתונים שאנו חשופים אליהם רק במצב Debug ב-Visual Studio על אתר בסביבה אמיתית יותר.

  

איך עושים Remote Debugging?

 1. להוריד Remote Tools for Microsoft Visual Studio. שימו לב שצריך להוריד גרסא בהתאם לגרסת ה-Visual Studio שמותקנת אצלכם במחשב המקומי.

קישורים להורדה:

Remote Tools for Microsoft Visual Studio 2013 

Remote Tools for Microsoft Visual Studio 2015

 

2. להתקין במכונה המרוחקת.

3. לאחר ההתקנה נפעיל את ה-Visual Studio Remote Debugging Monitor ונקבל את החלון הבא:

 

4. בשלב זה פותחים את ה-Visual Studio מקומית. בתפריט העליון לוחצים על Debug ואז Attach to Process...

 

5. רושמים את ה-IP או את השם של המכונה המרוחקת בשדה Qualifier

 

6. לאחר לחיצה על Enter במקלדת יפתחו לנו ה-Services שרצים על המכונה המרוחקת. נבחר את ה-Service הרצוי. במקרה שלנו זה ה-w3wp.exe שמייצג את ה-Application Pool של האתר

7. לחיצה על Attach תריץ את הפרוייקט במכונה המקומית במצב Debug על האתר שנמצא במכונה המרוחקת.

 

 

למה צריך לשים לב כאשר עושים Remote Debugging?

  • * צריך לוודא שאין בעיות עם ה-Firewall במכונה המרוחקת ושהיא מאפשרת גישה מרחוק.
  • * שה-DLL של הפרוייקט במכונה המרוחקת תואמים את ה-DLL של הפרוייקט במכונה המקומית, כולל קבצי ה-PDB. 
  • * יכול להיות שהנקודות האדומות של ה-Breakpoints בעורך הקוד של Visual Studio יהפכו לריקות, זה אמור להסתדר לאחר פתיחת האתר. במידה וזה לא מתמלא זה אומר שכנראה אין תאימות בין ה-DLL שבמכונה המרוחקת למכונה המקומית.

 

 

הוסף תגובה