משתמשים בבודק הזיכרון החדש כדי לבדוק זיכרון של ArrayBuffer
, TypedArray
ו-DataView
ב-JavaScript, וגם WebAssembly.Memory
של אפליקציות Wasm שנכתבו ב-C++.
פתיחת הכלי לבדיקת זיכרון
יש כמה דרכים לפתוח את בודק הזיכרון.
פתיחה מהתפריט
- פותחים את כלי הפיתוח.
- לוחצים על אפשרויות נוספות > כלים נוספים > בודק זיכרון.
פתיחה במהלך ניפוי באגים
- פותחים דף עם JavaScript
ArrayBuffer
. אנחנו נשתמש בדף ההדגמה הזה. - פותחים את כלי הפיתוח.
- פותחים את הקובץ demo-js.js בחלונית מקורות ומגדירים נקודת עצירה בשורה 18.
- רענון הדף
- מרחיבים את הקטע היקף בחלונית כלי לניפוי באגים שמשמאל.
אפשר לפתוח את בודק הזיכרון:
- מהסמל. לוחצים על הסמל שלצד הנכס
buffer
, או - מתפריט ההקשר. לוחצים לחיצה ימנית על המאפיין
buffer
ובוחרים באפשרות הצגה בחלונית בודק הזיכרון.
- מהסמל. לוחצים על הסמל שלצד הנכס
בדיקה של מספר אובייקטים
- אפשר גם לבדוק את DataView או TypedArray. לדוגמה,
b2
הואTypedArray
. כדי לבדוק זאת, לוחצים לחיצה ימנית על המאפייןb2
ובוחרים באפשרות הצגה בחלונית בודק הזיכרון (עדיין אין סמל עבורTypedArray
אוDataView
). - תיפתח כרטיסייה חדשה בבודק הזיכרון. שימו לב שניתן לבדוק מספר אובייקטים בבת אחת.
בודק הזיכרון
בודק הזיכרון כולל 3 אזורים עיקריים:
סרגל הניווט
- בקלט הכתובת מוצגת כתובת הבייט הנוכחית בפורמט הקסדצימלי. אתם יכולים להזין ערך חדש כדי לעבור למיקום חדש במאגר הנתונים הזמני. לדוגמה, אפשר לנסות להקליד
0x00000008
. - השימוש במאגרי נתונים זמניים יכול להיות ארוך יותר מהדף. במקום לגלול בדף, אתם יכולים להשתמש בלחצן שמאלה וימינה כדי לנווט.
- הלחצנים מימין מאפשרים ניווט קדימה/אחורה.
- כברירת מחדל, מאגר הנתונים הזמני מתעדכן באופן אוטומטי במהלך הצעד. אם זה לא המצב, אפשר ללחוץ על הלחצן רענן כדי לרענן את הזיכרון ולעדכן את התוכן שלו.
מאגר נתונים זמני לזיכרון
- בצד ימין, הכתובת מוצגת בפורמט הקסדצימלי.
- גם הזיכרון מוצג בפורמט הקסדצימלי, כשכל בייט מופרד ברווח. הבייט שנבחר מודגש. אפשר ללחוץ על הבייט או לנווט באמצעות המקלדת (שמאלה, ימינה, למעלה, למטה).
- ייצוג ASCII של הזיכרון מופיע בצד שמאל. הדגשה מציגה את הערך המתאים לביטים שנבחרו בבייט. כמו בזיכרון, אפשר ללחוץ על הבייט או לנווט באמצעות המקלדת (שמאלה, ימינה, למעלה, למטה).
הכלי לבדיקת ערך
- בסרגל הכלים העליון יש לחצן למעבר בין קצה גדול לקטן ולפתיחת ההגדרות. פותחים את ההגדרות כדי לבחור אילו סוגי ערכים הם רוצים לראות כברירת מחדל בכלי הבדיקה.
- באזור הראשי מוצגים כל פירושי הערכים לפי ההגדרות. כברירת מחדל, כולם מוצגים.
- אפשר ללחוץ על הקידוד. אפשר להחליף בין dec, hex, oct למספר שלם ו-sci ו-dec ל-floats.
הזיכרון בבדיקה
בואו נבדוק את הזיכרון ביחד.
- יש לבצע את השלבים הבאים כדי להתחיל את ניפוי הבאגים.
- משנים את הכתובת ל-
0x00000027
בקלט הכתובת. - חשוב להקפיד על ייצוג ASCII ועל פירושי הערכים. כל הערכים ריקים כרגע.
- שימו לב ללחצן מעבר לכתובת הכחול שלצד
Pointer 32-bit
ו-Pointer 64-bit
. אפשר ללחוץ עליה כדי לעבור לכתובת. הלחצנים מופיעים באפור ואי אפשר ללחוץ עליהם אם הכתובות לא תקינות. - לוחצים על Resume Script (המשך ההפעלה של הסקריפט) כדי להמשיך בקוד.
- שימו לב שייצוג ה-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).
- בחלונית כלי לניפוי באגים, מרחיבים את היקף > מקומי.
לוחצים על הסמל ליד המערך
x: int[10]
.לחלופין, לוחצים לחיצה ימנית על המערך ובוחרים באפשרות הצגה בחלונית בודק הזיכרון.
כדי להפסיק את ההדגשה של זיכרון האובייקט, בחלונית בודק הזיכרון מעבירים את העכבר מעל תג האובייקט ולוחצים על הלחצן x
.
מידע נוסף זמין במאמרים הבאים: