بازرس حافظه: ArrayBuffer، TypedArray، DataView و Wasm Memory را بررسی کنید.

جسلین ین
Jecelyn Yeen
سوفیا املیانوا
Sofia Emelianova

از بازرس حافظه برای بازرسی حافظه ArrayBuffer ، TypedArray و DataView در جاوا اسکریپت و همچنین WebAssembly.Memory برنامه های Wasm که در C++ نوشته شده اند استفاده کنید.

نمای کلی

بازرس حافظه محتوای حافظه را سازماندهی می‌کند و به شما کمک می‌کند تا آرایه‌های بزرگ را به سرعت حرکت کنید. می توانید مقادیر ASCII محتوای حافظه را مستقیماً در کنار بایت ها مشاهده کنید و endianness های مختلف را انتخاب کنید. هنگام اشکال زدایی برنامه وب خود برای گردش کار کارآمد، از بازرس حافظه استفاده کنید.

Memory Inspector را باز کنید

چند راه برای باز کردن بازرس حافظه وجود دارد.

از منو باز کنید

  1. DevTools را باز کنید .
  2. روی گزینه های بیشتر کلیک کنید بیشتر > ابزارهای بیشتر > بازرس حافظه . منوی بازرس حافظه

در هنگام اشکال زدایی باز شود

  1. صفحه ای را با JavaScript ArrayBuffer باز کنید. ما از این صفحه نمایشی استفاده خواهیم کرد.
  2. DevTools را باز کنید .
  3. فایل demo-js.js را در پنل Sources باز کنید، یک نقطه شکست را در خط 18 تنظیم کنید.
  4. صفحه را رفرش کنید.
  5. بخش Scope را در صفحه Debugger سمت راست باز کنید.
  6. می توانید بازرس حافظه را باز کنید:

    • از نماد . با کلیک بر روی نماد کنار خاصیت buffer یا
    • از منوی زمینه بر روی ویژگی buffer کلیک راست کرده و Reveal in Memory Inspector panel را انتخاب کنید.

    نمایش در پنل بازرس حافظه

چندین اشیاء را بررسی کنید

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

بازرس حافظه

بازرس حافظه

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

نوار ناوبری

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

بافر حافظه

بافر حافظه

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

بازرس ارزش

بازرس ارزش

  1. نوار ابزار بالایی دارای دکمه ای برای جابجایی بین بزرگ و ک��چک و باز کردن تنظیمات است. تنظیمات را باز کنید تا انتخاب کنید کدام نوع مقادیر را می‌خواهند به‌صورت پیش‌فرض در بازرس ببینند. دکمه نوار ابزار
  2. ناحیه اصلی تمام تفاسیر مقادیر را طبق تنظیمات نشان می دهد. به طور پیش فرض، همه نشان داده می شوند.
  3. رمزگذاری قابل کلیک است. شما می توانید بین dec، hex، oct برای عدد صحیح و sci، dec برای شناور تغییر دهید. سوئیچ رمزگذاری

بررسی حافظه

بیایید با هم حافظه را بررسی کنیم.

  1. برای شروع اشکال زدایی این مراحل را دنبال کنید.
  2. آدرس را در ورودی آدرس به 0x00000027 تغییر دهید. ورودی آدرس
  3. نمایش ASCII و تفاسیر ارزش را مشاهده کنید. همه مقادیر در حال حاضر خالی هستند.
  4. به دکمه آبی پرش به آدرس کنار Pointer 32-bit و Pointer 64-bit توجه کنید. برای رفتن به آدرس می توانید روی آن کلیک کنید. اگر آدرس ها معتبر نباشند، دکمه ها خاکستری هستند و قابل کلیک نیستند. دکمه پرش به آدرس
  5. روی Resume script execution کلیک کنید تا وارد کد شوید. از سرگیری اجرای اسکریپت
  6. توجه داشته باشید که نمایش ASCII اکنون به روز شده است. تمام تفاسیر ارزش نیز به روز می شوند. تمام تفاسیر ارزش به روز می شوند
  7. بیایید بازرس ارزش را سفارشی کنیم تا فقط ممیز شناور را نشان دهد. روی دکمه تنظیمات کلیک کنید و فقط Float 32-bit و Float 64-bit را علامت بزنید. تنظیمات برای سفارشی کردن بازرس ارزش
  8. بیایید رمزگذاری را از dec به sci تغییر دهیم. توجه داشته باشید که نمایش های ارزش بر این اساس به روز می شوند. رمزگذاری را تغییر دهید
  9. سعی کنید با صفحه کلید خود یا با استفاده از نوار پیمایش در بافر حافظه حرکت کنید. برای مشاهده تغییرات مقادیر، مرحله 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 یک شی:

  1. DevTools را در این صفحه نمایشی باز کنید.
  2. در پنل Sources ، demo-cpp.cc را باز کنید و یک نقطه شکست در تابع main() در خط 15 تنظیم کنید: x[i] = n - i - 1; .
  3. برای اجرای برنامه، صفحه را دوباره بارگیری کنید. دیباگر در نقطه شکست مکث می کند.
  4. در بخش Debugger ، Scope > Local را گسترش دهید.
  5. را کلیک کنید نمایش در بازرس حافظه. نماد کنار آرایه x: int[10] .

    یا، روی آرایه کلیک راست کرده و Reveal in Memory Inspector panel را انتخاب کنید.

آرایه x در Memory Inspector باز شد.

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

برجسته کردن حافظه شی را متوقف کنید.

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