استخدِم أداة فحص الذاكرة لفحص ذاكرة ArrayBuffer
وTypedArray
وDataView
في JavaScript بالإضافة إلى WebAssembly.Memory
لتطبيقات Wasm المكتوبة بلغة C++.
نظرة عامة
ينظّم أداة فحص الذاكرة محتوى الذاكرة ويساعدك في التنقّل في الصفائف الكبيرة بسرعة. يمكنك عرض قيم ASCII لمحتوى الذاكرة مباشرةً بجانب البايتات، واختيار ترتيب مختلف للبتّات. استخدِم أداة فحص الذاكرة أثناء تصحيح أخطاء تطبيق الويب للحصول على سير عمل فعّال.
افتح "أداة فحص الذاكرة".
تتوفّر بضع طرق لفتح أداة فحص الذاكرة.
الفتح من القائمة
- افتح "أدوات مطوّري البرامج".
- انقر على مزيد من الخيارات
> مزيد من الأدوات > أداة فحص الذاكرة.
فتحها أثناء تصحيح الأخطاء
- افتح صفحة تتضمّن JavaScript
ArrayBuffer
. سنستخدم هذه الصفحة التجريبية. - افتح "أدوات مطوّري البرامج".
- افتح ملف demo-js.js في لوحة المصادر، واضبط نقطة توقُّف في السطر 18.
- إعادة تحميل الصفحة
- وسِّع قسم النطاق في لوحة أداة تصحيح الأخطاء على يسار الصفحة.
يمكنك فتح أداة فحص الذاكرة:
- من الرمز: النقر على الرمز بجانب الموقع
buffer
- من قائمة السياقات: انقر بزر الماوس الأيمن على السمة
buffer
واختَر العرض في لوحة "أداة فحص الذاكرة".
- من الرمز: النقر على الرمز بجانب الموقع
فحص عناصر متعددة
- يمكنك أيضًا فحص DataView أو TypedArray. على سبيل المثال،
b2
هوTypedArray
. لفحص ذلك، انقر بزر الماوس الأيمن على موقعb2
واختَر إظهار في لوحة "أداة فحص الذاكرة" (لا يتوفّر رمزTypedArray
أوDataView
بعد). - يتم فتح علامة تبويب جديدة في أداة فحص الذاكرة. يُرجى العلم أنّه يمكنك فحص عدة عناصر في آنٍ واحد.
أداة فحص الذاكرة
تتألّف أداة فحص الذاكرة من 3 أقسام رئيسية:
شريط التنقل
- تعرِض مدخل العنوان عنوان البايت الحالي بالتنسيق السداسي العشري. يمكنك إدخال قيمة جديدة للانتقال إلى موقع جديد في ذاكرة التخزين المؤقت. على سبيل المثال، حاوِل كتابة
0x00000008
. - يمكن أن تكون ذاكرة التخزين المؤقت أطول من صفحة. بدلاً من الانتقال بين الصفحات، يمكنك استخدام الزرَّين left وright للتنقّل.
- تتيح الأزرار على اليمين التنقّل للأمام/للخلف.
- يتم تعديل المخزن المؤقت تلقائيًا عند التقدّم أو التراجع. إذا لم يكن الأمر كذلك، يمنحك الزر إعادة تحميل خيار إعادة تحميل الذاكرة وتعديل محتوياتها.
ذاكرة التخزين المؤقت
- من اليسار، يتم عرض العنوان بتنسيق سداسي عشري.
- يتم أيضًا عرض الذاكرة بتنسيق سداسي عشري، ويتم فصل كل بايت بمسافة. يتم تمييز البايت المحدّد حاليًا. يمكنك النقر على البايت أو التنقّل باستخدام لوحة المفاتيح (لليسار أو لليمين أو للأعلى أو للأسفل).
- يظهر تمثيل ASCII للذاكرة على الجانب الأيمن. يعرض التمييز قيمة البتات المحدّدة في البايت. كما هو الحال مع الذاكرة، يمكنك النقر على البايت أو التنقّل باستخدام لوحة المفاتيح (لليسار واليمين والأعلى والأسفل).
أداة فحص القيمة
- يتضمّن شريط الأدوات العلوي زرًا للتبديل بين الترتيب الكبير والصغير للأرقام وفتح الإعدادات. افتح الإعدادات لاختيار أنواع القيم التي تريد رؤيتها تلقائيًا في أداة الفحص.
- تعرِض المنطقة الرئيسية جميع تفسيرات القيم وفقًا للإعدادات. يتم عرض جميع الإعدادات تلقائيًا.
- يمكن النقر على التشفير. يمكنك التبديل بين dec وhex وoct للأرقام الصحيحة وsci وdec للأرقام العشرية.
فحص الذاكرة
لنطّلِع على الذاكرة معًا.
- اتّبِع الخطوات التالية لبدء عملية تصحيح الأخطاء.
- غيِّر العنوان إلى
0x00000027
في إدخال العنوان. - راقِب تمثيل ASCII وتفسيرات القيمة. جميع القيم فارغة في الوقت الحالي.
- لاحِظ الزرّ الأزرق الانتقال إلى العنوان بجانب
Pointer 32-bit
وPointer 64-bit
. يمكنك النقر عليه للانتقال إلى العنوان. تظهر الأزرار باللون الرمادي ولا يمكن النقر عليها إذا كانت العناوين غير صالحة. - انقر على استئناف تنفيذ النص البرمجي للانتقال من خلال الرمز.
- يُرجى ملاحظة أنّ تمثيل ASCII قد تم تعديله الآن. يتم أيضًا تعديل جميع تفسيرات القيم.
- لنخصّص أداة فحص القيمة لعرض النقطة العائمة فقط. انقر على زر الإعدادات وضَع علامة في المربّع بجانب قيمة عائمة تشغل 32 بت وقيمة عائمة تشغل 64 بت فقط.
- لنغيّر ترميز
dec
إلىsci
. يُرجى ملاحظة أنّه تم تعديل تمثيلات القيم وفقًا لذلك. - حاوِل التنقّل في ذاكرة التخزين المؤقت باستخدام لوحة المفاتيح أو باستخدام شريط التنقّل. كرِّر الخطوة 4 لمراقبة التغييرات في القيم.
فحص ذاكرة WebAssembly
عنصر WebAssembly.Memory
هو ArrayBuffer
يحتوي على البايتات الأوّلية لذاكرة الكائن. تتيح لك لوحة أداة فحص الذاكرة فحص هذه العناصر في تطبيقات Wasm المكتوبة بلغة C++.
للاستفادة إلى أقصى حد من فحص WebAssembly.Memory
، اتّبِع الخطوات التالية:
- استخدِم الإصدار 107 من Chrome أو إصدارًا أحدث. يمكنك التحقّق من الإصدار على
chrome://version/
. - ثبِّت إضافة C/C++ DevTools Support (DWARF). هذا مكوّن إضافي لتصحيح أخطاء تطبيقات WebAssembly المكتوبة بلغة C/C++ باستخدام معلومات تصحيح أخطاء DWARF.
لفحص WebAssembly.Memory
لعنصر معيّن:
- افتح "أدوات مطوّري البرامج" في هذه الصفحة التجريبية.
- في لوحة المصادر، افتح
demo-cpp.cc
واضبط نقطة توقف في الدالةmain()
في السطر 15:x[i] = n - i - 1;
. - أعِد تحميل الصفحة لتشغيل التطبيق. يتوقّف برنامج تصحيح الأخطاء مؤقتًا عند نقطة الإيقاف.
- في لوحة أداة تصحيح الأخطاء، وسِّع النطاق > محلي.
انقر على رمز
بجانب صفيف
x: int[10]
.بدلاً من ذلك، انقر بزر الماوس الأيمن على الصفيف واختَر إظهار في لوحة "أداة فحص الذاكرة".
لإيقاف تمييز ذاكرة العنصر، مرِّر مؤشر الماوس فوق شارة العنصر وانقر على الزر x
في لوحة مدقّق الذاكرة.
لمزيد من المعلومات، يُرجى الاطّلاع على: