אפשר להשתמש בבודק הזיכרון החדש כדי לבדוק את הזיכרון של ArrayBuffer
, TypedArray
ו-DataView
ב-JavaScript, וגם WebAssembly.Memory
של אפליקציות Wasm שנכתבו ב-C++.
פתיחת הכלי לבדיקת זיכרון
יש כמה דרכים לפתוח את בודק הזיכרון.
פתיחה מהתפריט
- פותחים את כלי הפיתוח.
- לוחצים על אפשרויות נוספות > כלים נוספים > בודק זיכרון.
פתיחה במהלך ניפוי באגים
- פותחים דף עם JavaScript
ArrayBuffer
. נשתמש בדף ההדגמה הזה. - פותחים את כלי הפיתוח.
- פותחים את הקובץ demo-js.js בחלונית מקורות ומגדירים נקודת עצירה בשורה 18.
- רענון הדף
- מרחיבים את הקטע Scope בחלונית Debugger השמאלית.
אתם יכולים לפתוח את בודק הזיכרון:
- מהסמל. לוחצים על הסמל לצד הנכס ב-
buffer
, או - מתפריט ההקשר. לוחצים לחיצה ימנית על המאפיין
buffer
ובוחרים באפשרות הצגה בחלונית בודק הזיכרון.
- מהסמל. לוחצים על הסמל לצד הנכס ב-
בדיקה של מספר אובייקטים
- אפשר גם לבדוק את DataView או את TypedArray. לדוגמה,
b2
הואTypedArray
. כדי לבדוק זאת, לוחצים לחיצה ימנית על המאפייןb2
ובוחרים באפשרות הצגה בחלונית בודק הזיכרון (עדיין אין סמל שלTypedArray
אוDataView
). - תיפתח כרטיסייה חדשה בבודק הזיכרון. חשוב לדעת שאפשר לבדוק כמה אובייקטים בבת אחת.
בודק הזיכרון
בבודק הזיכרון יש 3 אזורים מרכזיים:
סרגל הניווט
- קלט הכתובת מציג את כתובת הבייט הנוכחית בפורמט הקסדצימלי. ניתן להזין ערך חדש כדי לעבור למיקום חדש במאגר הנתונים הזמני. לדוגמה, אפשר לנסות להקליד
0x00000008
. - מאגרי זיכרון יכולים להיות ארוכים יותר מדף. במקום לגלול לאורך, אתם יכולים להשתמש בלחצן השמאלי ובלחצן הימני כדי לנווט.
- הלחצנים בצד ימין מאפשרים ניווט קדימה/אחורה.
- כברירת מחדל, המאגר מתעדכן באופן אוטומטי בשלבים. אם זה לא קורה, בעזרת הלחצן רענון אפשר לרענן את הזיכרון ולעדכן את התוכן שלו.
מאגר נתונים זמני
- בצד ימין, הכתובת מוצגת בפורמט הקסדצימלי.
- הזיכרון מוצג גם בפורמט הקסדצימלי, וכל בייט מופרד ברווח. הבייט שנבחר מודגש. ניתן ללחוץ על הבייט או לנווט באמצעות המקלדת (שמאלה, ימינה, למעלה, למטה).
- ייצוג ASCII של הזיכרון יוצג בצד שמאל. הדגשה מציגה את הערך המתאים לביטים שנבחרו בבייט. בדומה לזיכרון, ניתן ללחוץ על הבייט או לנווט באמצעות המקלדת (שמאלה, ימינה, למעלה, למטה).
הכלי לבדיקת ערכים
- בסרגל הכלים העליון יש לחצן שמאפשר לעבור בין גדול וקטן ולפתוח את ההגדרות. פותחים את ההגדרות כדי לבחור את סוגי הערכים שרוצים לראות כברירת מחדל בכלי לבדיקה.
- באזור הראשי מוצגות כל פרשנות הערכים בהתאם להגדרות. כברירת מחדל, כולם מוצגים.
- ניתן ללחוץ על הקידוד. אפשר לעבור בין dec , hex , oct למספר שלם ו-sci או למספר דצון לצוףים.
מתבצעת בדיקת זיכרון
בואו נבחן את הזיכרון ביחד.
- כדי להתחיל את ניפוי הבאגים, יש לפעול לפי השלבים הבאים.
- לשנות את הכתובת ל-
0x00000027
בקלט הכתובת. - בודקים את ייצוג ASCII ואת פירוש הערכים. כרגע כל הערכים ריקים.
- שימו לב ללחצן הכחול מעבר לכתובת לצד
Pointer 32-bit
ו-Pointer 64-bit
. אפשר ללחוץ עליו כדי לעבור לכתובת. הלחצנים יופיעו באפור ולא תוכלו ללחוץ עליהם אם הכתובות לא תקינות. - לוחצים על המשך ביצוע הסקריפט כדי לבצע את השלבים השונים בקוד.
- שימו לב שייצוג ASCII מעודכן. גם כל פרשנויות הערכים מתעדכנות.
- נתאים אישית את בודק הערכים כך שיציג רק את הנקודה הצפה. לוחצים על לחצן ההגדרות ומסמנים רק את האפשרויות Float 32-bit ו-Float 64-bit.
- נשנה את הקידוד מ-
dec
ל-sci
. שימו לב שייצוגים של הערכים מתעדכנים בהתאם. - נסו לנווט במאגר הזיכרון באמצעות המקלדת או סרגל הניווט. חוזרים על שלב 4 כדי לשים לב לשינויים בערכים.
בדיקת זיכרון WebAssembly
האובייקט WebAssembly.Memory
הוא ArrayBuffer
שמכיל את הבייטים הגולמיים של זיכרון האובייקט. בחלונית בודק הזיכרון אפשר לבדוק אובייקטים כאלה באפליקציות Wasm שנכתבו ב- C++.
כדי לנצל את מלוא היתרונות של הבדיקה של WebAssembly.Memory
:
- יש להשתמש ב-Chrome מגרסה 107 ואילך. ניתן לבדוק את הגרסה בכתובת
chrome://version/
. - מתקינים את התוסף C/C++ DevTools Support (DWARF). זהו פלאגין לניפוי באגים באפליקציות C/C++ WebAssembly באמצעות מידע על תוצאות ניפוי הבאגים של DWARF.
כדי לבדוק את WebAssembly.Memory
של אובייקט:
- פותחים את כלי הפיתוח בדף ההדגמה הזה.
- בחלונית מקורות, פותחים את
demo-cpp.cc
ומגדירים נקודת עצירה בפונקציהmain()
בשורה 15:x[i] = n - i - 1;
. - כדי להפעיל את האפליקציה, צריך לטעון מחדש את הדף. הכלי לניפוי באגים יושהה בנקודת העצירה (breakpoint).
- בחלונית Debugger, מרחיבים את Scope > Local.
לוחצים על הסמל שליד המערך
x: int[10]
.לחלופין, לוחצים לחיצה ימנית על המערך ובוחרים באפשרות הצגה בחלונית 'בודק הזיכרון'.
כדי להפסיק את ההדגשה של זיכרון האובייקט, עוברים לחלונית בודק הזיכרון ומעבירים את העכבר מעל תג האובייקט ולוחצים על הלחצן x
.
מידע נוסף זמין במאמרים הבאים: