از بازرس حافظه برای بازرسی حافظه ArrayBuffer ، TypedArray و DataView در جاوا اسکریپت و همچنین WebAssembly.Memory برنامه های Wasm که در C++ نوشته شده اند استفاده کنید.
نمای کلی
بازرس حافظه محتوای حافظه را سازماندهی میکند و به شما کمک میکند تا آرایههای بزرگ را به سرعت حرکت کنید. می توانید مقادیر ASCII محتوای حافظه را مستقیماً در کنار بایت ها مشاهده کنید و endianness های مختلف را انتخاب کنید. هنگام اشکال زدایی برنامه وب خود برای گردش کار کارآمد، از بازرس حافظه استفاده کنید.
Memory Inspector را باز کنید
چند راه برای باز کردن بازرس حافظه وجود دارد.
از منو باز کنید
- DevTools را باز کنید .
- روی گزینه های بیشتر کلیک کنید
> ابزارهای بیشتر > بازرس حافظه . 
در هنگام اشکال زدایی باز شود
- صفحه ای را با JavaScript
ArrayBufferباز کنید. ما از این صفحه نمایشی استفاده خواهیم کرد. - DevTools را باز کنید .
- فایل demo-js.js را در پنل Sources باز کنید، یک نقطه شکست را در خط 18 تنظیم کنید.
- صفحه را رفرش کنید.
- بخش Scope را در صفحه Debugger سمت راست باز کنید.
می توانید بازرس حافظه را باز کنید:
- از نماد . با کلیک بر روی نماد کنار خاصیت
bufferیا - از منوی زمینه بر روی ویژگی
bufferکلیک راست کرده و Reveal in Memory Inspector panel را انتخاب کنید.

- از نماد . با کلیک بر روی نماد کنار خاصیت
چندین اشیاء را بررسی کنید
- می توانید DataView یا TypedArray را نیز بررسی کنید. به عنوان مثال،
b2یکTypedArrayاست. برای بررسی آن، روی ویژگیb2کلیک راست کرده و Reveal را در پنل Memory Inspector انتخاب کنید (هنوز نمادی برایTypedArrayیاDataViewوجود ندارد). - یک برگه جدید در بازرس حافظه باز می شود. لطفاً توجه داشته باشید که می توانید چندین شی را به طور همزمان بررسی کنید.

بازرس حافظه

بازرس حافظه از 3 حوزه اصلی تشکیل شده است:
نوار ناوبری

- ورودی آدرس آدرس بایت فعلی را در قالب هگز نشان می دهد. می توانید مقدار جدیدی را برای پرش به یک مکان جدید در بافر حافظه وارد کنید. برای مثال،
0x00000008را تایپ کنید. - بافرهای حافظه ممکن است طولانی تر از یک صفحه باشند. به جای پیمایش، می توانید از دکمه چپ و راست برای پیمایش استفاده کنید.
- دکمههای سمت چپ امکان پیمایش رو به جلو/عقب را میدهند.
- بهطور پیشفرض، بافر بهطور خودکار در مرحله استپ بهروزرسانی میشود. در صورتی که اینطور نیست، دکمه refresh به شما این امکان را می دهد که حافظه را تازه کنید و محتویات آن را به روز کنید.
بافر حافظه

- از سمت چپ، آدرس با فرمت هگز نمایش داده می شود.
- حافظه نیز در فرمت هگز نشان داده می شود که هر بایت با یک فاصله از هم جدا شده است. بایت انتخاب شده در حال حاضر برجسته شده است. می توانید روی بایت کلیک کنید یا با صفحه کلید (چپ، راست، بالا، پایین) حرکت کنید.
- یک نمایش ASCII از حافظه در سمت راست نشان داده شده است. هایلایت مقدار مربوط به بیت های انتخاب شده روی بایت را نشان می دهد. مشابه حافظه، می توانید روی بایت کلیک کنید یا با صفحه کلید (چپ، راست، بالا، پایین) حرکت کنید.
بازرس ارزش

- نوار ابزار بالایی دارای دکمه ای برای جابجایی بین بزرگ و کوچک و باز کردن تنظیمات است. تنظیمات را باز کنید تا انتخاب کنید کدام نوع مقادیر را میخواهند بهصورت پیشفرض در بازرس ببینند.

- ناحیه اصلی تمام تفاسیر مقادیر را طبق تنظیمات نشان می دهد. به طور پیش فرض، همه نشان داده می شوند.
- رمزگذاری قابل کلیک است. شما می توانید بین dec، hex، oct برای عدد صحیح و sci، dec برای شناور تغییر دهید.

بررسی حافظه
بیایید با هم خاطره را بررسی کنیم.
- برای شروع اشکال زدایی این مراحل را دنبال کنید.
- آدرس را در ورودی آدرس به
0x00000027تغییر دهید.
- نمایش ASCII و تفاسیر ارزش را مشاهده کنید. همه مقادیر در حال حاضر خالی هستند.
- به دکمه آبی پرش به آدرس در کنار
Pointer 32-bitوPointer 64-bitتوجه کنید. برای رفتن به آدرس می توانید روی آن کلیک کنید. اگر آدرس ها معتبر نباشند، دکمه ها خاکستری هستند و قابل کلیک نیستند.
- روی Resume script execution کلیک کنید تا وارد کد شوید.

- توجه داشته باشید که نمایش ASCII اکنون به روز شده است. تمام تفاسیر ارزش نیز به روز می شوند.

- بیایید بازرس ارزش را سفارشی کنیم تا فقط ممیز شناور را نشان دهد. روی دکمه تنظیمات کلیک کنید و فقط Float 32-bit و Float 64-bit را علامت بزنید.

- بیایید رمزگذاری را از
decبهsciتغییر دهیم. توجه داشته باشید که نمایش های ارزش بر این اساس به روز می شوند.
- سعی کنید با صفحه کلید خود یا با استفاده از نوار پیمایش در بافر حافظه حرکت کنید. برای مشاهده تغییرات مقادیر، مرحله 4 را تکرار کنید.
بازرسی حافظه WebAssembly
شی WebAssembly.Memory یک ArrayBuffer است که بایت های خام حافظه شی را نگه می دارد. پانل Memory Inspector به شما امکان می دهد چنین اشیایی را در برنامه های Wasm که به زبان C++ نوشته شده اند را بررسی کنید.
برای استفاده کامل از WebAssembly.Memory بازرسی:
- از Chrome 107 یا جدیدتر استفاده کنید. نسخه خود را در
chrome://version/بررسی کنید. - پسوند C/C++ DevTools Support (DWARF) را نصب کنید. این افزونه ای برای اشکال زدایی برنامه های C/C++ WebAssembly با استفاده از اطلاعات اشکال زدایی DWARF است.
برای بررسی WebAssembly.Memory یک شی:
- DevTools را در این صفحه نمایشی باز کنید.
- در پنل Sources ،
demo-cpp.ccرا باز کنید و یک نقطه شکست در تابعmain()در خط 15 تنظیم کنید:x[i] = n - i - 1;. - برای اجرای برنامه، صفحه را دوباره بارگیری کنید. دیباگر در نقطه شکست مکث می کند.
- در بخش Debugger ، Scope > Local را گسترش دهید.
را کلیک کنید
نماد کنار آرایه x: int[10].یا، روی آرایه کلیک راست کرده و Reveal in Memory Inspector panel را انتخاب کنید.

برای توقف برجسته کردن حافظه شی، در پانل Memory Inspector ، ماوس را روی نشان شی نگه دارید و روی دکمه x کلیک کنید.

برای کسب اطلاعات بیشتر، نگاه کنید به: