JavaScript'teki ArrayBuffer
, TypedArray
ve DataView
belleğini ve C++ ile yazılmış Wasm uygulamalarının WebAssembly.Memory
belleğini incelemek için Bellek denetleyicisini kullanın.
Genel Bakış
Bellek denetleyici, bellek içeriğini düzenler ve büyük dizilerde hızlıca gezinmenize yardımcı olur. Bellek içeriğinin ASCII değerlerini doğrudan baytların yanında görüntüleyebilir ve farklı bir büyük endian seçebilirsiniz. Verimli bir iş akışı için web uygulamanızda hata ayıklama yaparken Bellek Denetleyici'yi kullanın.
Bellek Denetleyici'yi açma
Bellek denetleyicisini açmanın birkaç yolu vardır.
Menüden açma
- DevTools'u açın.
- Diğer Seçenekler
> Diğer araçlar > Bellek denetleyici'yi tıklayın.
Hata ayıklama sırasında açma
- JavaScript içeren bir sayfa açın
ArrayBuffer
. Bu demo sayfasını kullanacağız. - DevTools'u açın.
- Kaynaklar panelinde demo-js.js dosyasını açın, 18. satırda bir kesme noktası ayarlayın.
- Sayfayı yenileyin.
- Sağdaki Hata Ayıklama Aracı bölmesinde Kapsam bölümünü genişletin.
Bellek denetleyicisini açabilirsiniz:
- Simgeden.
buffer
mülkünün yanındaki simgeyi tıklayarak veya - Bağlam menüsünden.
buffer
mülkünü sağ tıklayın ve Bellek Denetleyici panelinde göster'i seçin.
- Simgeden.
Birden fazla nesneyi inceleme
- DataView veya TypedArray'ı da inceleyebilirsiniz. Örneğin,
b2
birTypedArray
'dur. Bunu incelemek içinb2
mülkünü sağ tıklayın ve Hafıza Denetleyici panelinde göster'i seçin (TypedArray
veyaDataView
için henüz simge yok). - Bellek denetleyicisi'nde yeni bir sekme açılır. Aynı anda birden fazla nesneyi inceleyebilirsiniz.
Bellek denetleyicisi
Bellek denetleyicisi 3 ana bölümden oluşur:
Gezinme çubuğu
- Adres girişi, geçerli bayt adresini onaltılık biçimde gösterir. Bellek arabelleğinde yeni bir konuma atlamak için yeni bir değer girebilirsiniz. Örneğin,
0x00000008
türünü deneyin. - Bellek arabellekleri bir sayfadan uzun olabilir. Sayfaları kaydırmak yerine sol ve sağ düğmelerini kullanarak gezinebilirsiniz.
- Soldaki düğmeler ileri/geri gezinmenize olanak tanır.
- Varsayılan olarak, tampon adım atıldığında otomatik olarak güncellenir. Aksi takdirde yenile düğmesi, belleği yenileme ve içeriğini güncelleme seçeneği sunar.
Bellek arabelleği
- Sol tarafta adres onaltılık biçimde gösterilir.
- Bellek de her bayt boşlukla ayrılmış şekilde on altılık biçimde gösterilir. Şu anda seçili olan bayt vurgulanır. Baytı tıklayabilir veya klavyeyle (sol, sağ, yukarı, aşağı) gezinebilirsiniz.
- Sağ tarafta, belleğin ASCII gösterimi gösterilir. Vurgu, bayttaki seçili bitlere karşılık gelen değeri gösterir. Belleğe benzer şekilde, baytı tıklayabilir veya klavyeyle (sol, sağ, yukarı, aşağı) gezinebilirsiniz.
Değer denetleyicisi
- Üst araç çubuğunda, büyük ve küçük endian arasında geçiş yapmak ve ayarları açmak için bir düğme bulunur. İnceleyicide varsayılan olarak görmek istedikleri değer türlerini seçmek için ayarları açın.
- Ana alanda, ayarlara göre tüm değer yorumları gösterilir. Varsayılan olarak tümü gösterilir.
- Kodlama tıklanabilir. Tam sayılar için on, onaltılık, sekizlik ve kayan noktalı sayılar için bilimsel ve on tabanlı arasında geçiş yapabilirsiniz.
Belleği inceleme
Anılarınızı birlikte inceleyelim.
- Hata ayıklama işlemini başlatmak için aşağıdaki adımları uygulayın.
- Adres girişinde adresi
0x00000027
olarak değiştirin. - ASCII gösterimini ve değer yorumlarını inceleyin. Şu anda tüm değerler boştur.
Pointer 32-bit
vePointer 64-bit
'in yanındaki mavi Adrese atla düğmesine dikkat edin. Adrese atlamak için bu düğmeyi tıklayabilirsiniz. Adresler geçerli değilse düğmeler devre dışı bırakılır ve tıklanamaz.- Kodda adım adım ilerlemek için Komut dosyası yürütmeyi devam ettir'i tıklayın.
- ASCII gösteriminin güncellendiğini görebilirsiniz. Tüm değer yorumları da güncellenir.
- Değer İnceleyici'yi yalnızca kayan nokta değerini gösterecek şekilde özelleştirelim. Ayarlar düğmesini tıklayın ve yalnızca Kayan noktalı 32 bit ve Kayan noktalı 64 bit seçeneklerini işaretleyin.
- Kodlamayı
dec
yerinesci
olarak değiştirelim. Değer gösterimlerinin buna göre güncellendiğine dikkat edin. - Bellek arabelleğine klavyenizi veya gezinme çubuğunu kullanarak gitmeyi deneyin. Değer değişikliklerini gözlemlemek için 4. adımı tekrarlayın.
WebAssembly bellek denetimi
WebAssembly.Memory
nesnesi, nesne belleğinin ham baytlarını tutan bir ArrayBuffer
öğesidir. Bellek Denetleyicisi paneli, C++ ile yazılmış Wasm uygulamalarındaki bu tür nesneleri incelemenize olanak tanır.
WebAssembly.Memory
denetiminden tam olarak yararlanmak için:
- Chrome 107 veya sonraki sürümleri kullanın. Sürümünüzü
chrome://version/
adresinden kontrol edin. - C/C++ DevTools Desteği (DWARF) uzantısını yükleyin. Bu, DWARF hata ayıklama bilgilerini kullanarak C/C++ WebAssembly uygulamalarında hata ayıklama için kullanılan bir eklentidir.
Bir nesnenin WebAssembly.Memory
değerini incelemek için:
- Bu demo sayfasında Geliştirici Araçları'nı açın.
- Kaynaklar panelinde
demo-cpp.cc
dosyasını açın ve 15. satırdakimain()
işlevinde bir kesme noktası ayarlayın:x[i] = n - i - 1;
. - Uygulamayı çalıştırmak için sayfayı yeniden yükleyin. Hata ayıklayıcı, kesme noktasında duraklar.
- Hata ayıklayıcı bölmesinde Kapsam > Yerel'i genişletin.
x: int[10]
dizisinin yanındakisimgesini tıklayın.
Alternatif olarak, diziyi sağ tıklayıp Bellek Denetleyici panelinde göster'i seçin.
Nesne belleğinin vurgulanmasını durdurmak için Bellek Denetleyicisi panelinde fareyle nesne rozetinin üzerine gelip x
düğmesini tıklayın.
Daha fazla bilgi için: