חברת totalview הוסיפה לאחרונה ל-debugger שלהם feature חדש - מנוע המאפשר לדבר לאחור (בזמן).
כלומר - אם קפץ breakpoint או עצרנו על שגיאה, אפשר לבקש מה-debugger ללכת אחורנית בזמן, לפקודה הקודמת (back step) לדלג על קריאות לפונקציות (back next) או המקבילה ל-run to שנקראת באופן לא מפתיע "run back to". אחרי שמגיעים למקום מסוים אפשר לחזור ולדבג קדימה, כרגיל.
ה-feature החדש זוכה להרבה סיקור והוא יכול להיות פריצת דרך קונספטואלית חשובה - לא עוד הרצות חוזרות ונסיון לתפוס את הבאג עם printf-ים או breakpoints, אלא דרך פשוטה, של כמה לחיצות על כפתורים - והנה הבאג לפנינו.
איך זה עובד? בעזרת instrumentation של הקוד הם תופסים את הנקודות הקריטיות שבהן משתנה מצב ההרצה באופן שאי אפשר לשחזר (כמו קריאות מקבצים, קבלת מספרים אקראיים וכד') ושומרים אותם. כאשר המשתמש משוטט לו בתוך הקוד ה-debugger משתמש במידע שנאסף כדי להכניס את הערכים המתאימים לרגיסטרים ולזיכרון.
כל התהליך נראה מאוד low level והוא אכן עובד רק ל-C/C++ ו-fortran. אולי בעתיד נראה אותו גם ל-java ו-.net, שם העבודה יכולה להיות קצת יותר קלה וה-overhead קצת יותר נמוך.
ה-white paper של החברה נמצא כאן: http://www.totalviewtech.com/pdf/whitepaper_replayengine.pdf
הוספת תגובה על "לדבג לאחור עם totalview"
נא להתחבר כדי להגיב.
התחברות או הרשמה