Gunakan Memory inspector baru untuk memeriksa memori ArrayBuffer
, TypedArray
, dan DataView
di JavaScript serta WebAssembly.Memory
aplikasi Wasm yang ditulis dalam C++.
Membuka Pemeriksa Memori
Ada beberapa cara untuk membuka Memory inspector.
Buka dari menu
- Buka DevTools.
- Klik More Options > More tools > Memory inspector.
Membuka selama proses debug
- Buka halaman yang berisi JavaScript
ArrayBuffer
. Kita akan menggunakan halaman demo ini. - Buka DevTools.
- Buka file demo-js.js di panel Sources, tetapkan titik henti sementara di baris 18.
- Muat ulang halaman.
- Luaskan bagian Scope di panel Debugger kanan.
Anda dapat membuka Memory inspector:
- Dari ikon. Mengklik ikon di samping properti
buffer
, atau - Dari menu konteks. Klik kanan properti
buffer
, lalu pilih Buka di panel Pemeriksa Memori.
- Dari ikon. Mengklik ikon di samping properti
Memeriksa beberapa objek
- Anda juga dapat memeriksa DataView atau TypedArray. Misalnya,
b2
adalahTypedArray
. Untuk memeriksanya, klik kanan propertib2
, lalu pilih Buka di panel Pemeriksa Memori (Belum ada ikon untukTypedArray
atauDataView
). - Tab baru akan terbuka di Memory inspector. Perlu diperhatikan bahwa Anda dapat memeriksa beberapa objek sekaligus.
{i>Memory inspector<i}
Memory inspector terdiri dari 3 area utama:
Menu navigasi
- Input alamat menunjukkan alamat byte saat ini dalam format heksadesimal. Anda dapat memasukkan nilai baru untuk melompat ke lokasi baru di buffer memori. Misalnya, coba ketik
0x00000008
. - Buffer memori bisa lebih lama dari satu halaman. Sebagai ganti men-scroll, Anda dapat menggunakan tombol kiri dan kanan untuk menavigasi.
- Tombol di sebelah kiri memungkinkan navigasi maju/mundur.
- Secara default, buffer diperbarui secara otomatis saat melakukan loncatan. Jika tidak, tombol refresh akan memberi Anda opsi untuk memuat ulang memori dan memperbarui kontennya.
Buffering memori
- Dari sebelah kiri, alamat akan ditampilkan dalam format heksadesimal.
- Memori juga ditampilkan dalam format heksadesimal, setiap byte dipisahkan oleh spasi. Byte yang dipilih saat ini ditandai. Anda dapat mengklik byte tersebut atau menavigasi dengan keyboard (kiri, kanan, atas, bawah).
- Representasi ASCII dari memori ditampilkan di sisi kanan. Sorotan menunjukkan nilai yang sesuai dengan bit yang dipilih pada byte. Mirip dengan memori, Anda dapat mengklik byte atau menavigasi dengan {i>keyboard<i} (kiri, kanan, atas, bawah).
Pemeriksa nilai
- Toolbar atas menampilkan tombol untuk beralih antara endian besar dan kecil dan untuk membuka setelan. Buka setelan untuk memilih jenis nilai yang ingin dilihat per default di pemeriksa.
- Area utama menampilkan semua penafsiran nilai sesuai dengan setelan. Secara default, semuanya akan ditampilkan.
- Encoding dapat diklik. Anda dapat beralih antara dec, hex, oct untuk integer dan sci, dec untuk float.
Memeriksa memori
Mari kita periksa memori bersama-sama.
- Ikuti langkah-langkah berikut untuk memulai proses debug.
- Ubah alamat menjadi
0x00000027
di input alamat. - Amati representasi ASCII dan interpretasi nilai. Semua nilai saat ini kosong.
- Perhatikan tombol Jump to address berwarna biru di samping
Pointer 32-bit
danPointer 64-bit
. Anda dapat mengkliknya untuk langsung ke alamat tersebut. Tombol ini berwarna abu-abu dan tidak dapat diklik jika alamat tidak valid. - Klik Lanjutkan eksekusi skrip untuk memproses kode.
- Perhatikan bahwa representasi ASCII kini diperbarui. Semua penafsiran nilai juga diperbarui.
- Mari kita sesuaikan Value inspector agar hanya menampilkan floating point. Klik tombol pengaturan dan centang Float 32-bit dan Float 64-bit saja.
- Mari kita ubah encoding dari
dec
menjadisci
. Perhatikan bahwa representasi nilai diperbarui sebagaimana mestinya. - Coba jelajahi buffering memori dengan keyboard atau menggunakan menu navigasi. Ulangi langkah 4 untuk mengamati perubahan nilai.
Pemeriksaan memori WebAssembly
Objek WebAssembly.Memory
adalah ArrayBuffer
yang menyimpan byte mentah memori objek. Panel Memory Inspector memungkinkan Anda memeriksa objek tersebut di aplikasi Wasm yang ditulis dalam C++.
Untuk memanfaatkan sepenuhnya inspeksi WebAssembly.Memory
:
- Gunakan Chrome 107 atau yang lebih baru. Periksa versi Anda di
chrome://version/
. - Instal ekstensi C/C++ DevTools Support (DWARF). Ini adalah plugin untuk men-debug aplikasi WebAssembly C/C++ menggunakan informasi debug DWARF.
Untuk memeriksa WebAssembly.Memory
objek:
- Buka DevTools di halaman demo ini.
- Di panel Sources, buka
demo-cpp.cc
dan tetapkan titik henti sementara di fungsimain()
pada baris 15:x[i] = n - i - 1;
. - Muat ulang halaman untuk menjalankan aplikasi. Debugger dijeda pada titik henti sementara.
- Di panel Debugger, luaskan Scope > Local.
Klik ikon di samping array
x: int[10]
.Atau, klik kanan array, lalu pilih Reveal in Memory Inspector panel.
Untuk berhenti menandai memori objek, di panel Memory Inspector, arahkan kursor ke badge objek dan klik tombol x
.
Untuk mempelajari lebih lanjut, lihat: