Utilizza il Controllo memoria per controllare la memoria ArrayBuffer
, TypedArray
e DataView
in JavaScript, nonché WebAssembly.Memory
delle applicazioni Wasm scritte in C++.
Panoramica
L'strumento di ispezione della memoria organizza i contenuti della memoria e ti aiuta a spostarti rapidamente tra array di grandi dimensioni. Puoi visualizzare i valori ASCII dei contenuti della memoria direttamente accanto ai byte e selezionare un'endianness diversa. Utilizza lo strumento di controllo della memoria durante il debug dell'app web per un flusso di lavoro efficiente.
Aprire lo strumento di controllo della memoria
Esistono diversi modi per aprire il Controllo memoria.
Aprire dal menu
- Apri DevTools.
- Fai clic su Altre opzioni
> Altri strumenti > Ispezione memoria.
Aprire durante il debug
- Apri una pagina con JavaScript
ArrayBuffer
. Utilizzeremo questa pagina demo. - Apri DevTools.
- Apri il file demo-js.js nel riquadro Origini, imposta un punto di interruzione nella riga 18.
- Aggiorna la pagina.
- Espandi la sezione Ambito nel riquadro Debugger a destra.
Puoi aprire il Controllo memoria:
- Dall'icona. Facendo clic sull'icona accanto alla proprietà
buffer
oppure - Dal menu contestuale. Fai clic con il tasto destro del mouse sulla proprietà
buffer
e seleziona Mostra nel riquadro dell'ispettore della memoria.
- Dall'icona. Facendo clic sull'icona accanto alla proprietà
Ispeziona più oggetti
- Puoi anche ispezionare DataView o TypedArray. Ad esempio,
b2
è unTypedArray
. Per esaminarla, fai clic con il tasto destro del mouse sulla proprietàb2
e seleziona Mostra nel riquadro dell'ispettore della memoria (non è ancora disponibile un'icona perTypedArray
oDataView
). - Viene aperta una nuova scheda nel Controllo memoria. Tieni presente che puoi ispezionare più oggetti contemporaneamente.
Controllo memoria
L'strumento di ispezione della memoria è costituito da tre aree principali:
Barra di navigazione
- L'input indirizzo mostra l'indirizzo byte corrente in formato esadecimale. Puoi inserire un nuovo valore per passare a una nuova posizione nel buffer della memoria. Ad esempio, prova a digitare
0x00000008
. - I buffer di memoria potrebbero essere più lunghi di una pagina. Anziché scorrere, puoi utilizzare i tasti sinistra e destra per spostarti.
- I pulsanti a sinistra consentono di navigare avanti/indietro.
- Per impostazione predefinita, il buffer viene aggiornato automaticamente durante il passaggio. In caso contrario, il pulsante Aggiorna ti offre la possibilità di aggiornare la memoria e i relativi contenuti.
Buffer di memoria
- A sinistra, l'indirizzo viene visualizzato in formato esadecimale.
- La memoria viene mostrata anche in formato esadecimale, con ogni byte separato da uno spazio. Il byte attualmente selezionato viene evidenziato. Puoi fare clic sul byte o spostarti con la tastiera (sinistra, destra, su, giù).
- Sul lato destro viene visualizzata una rappresentazione ASCII della memoria. Un'evidenziazione mostra il valore corrispondente ai bit selezionati nel byte. Come per la memoria, puoi fare clic sul byte o spostarti con la tastiera (sinistra, destra, su, giù).
Controllo valori
- Una barra degli strumenti in alto presenta un pulsante per passare da big a little endian e per aprire le impostazioni. Aprire le impostazioni per selezionare i tipi di valori da visualizzare per impostazione predefinita nell'inspector.
- L'area principale mostra tutte le interpretazioni dei valori in base alle impostazioni. Per impostazione predefinita, vengono mostrate tutte.
- La codifica è cliccabile. Puoi passare da dec, hex, oct per numeri interi e sci, dec per numeri in virgola mobile.
Ispezione della memoria
Esaminiamo insieme la memoria.
- Per avviare il debug, segui questi passaggi.
- Modifica l'indirizzo in
0x00000027
nell'input dell'indirizzo. - Osserva la rappresentazione ASCII e le interpretazioni dei valori. Al momento tutti i valori sono vuoti.
- Notare il pulsante blu Vai all'indirizzo accanto a
Pointer 32-bit
ePointer 64-bit
. Puoi fare clic sull'indirizzo per passare direttamente alla pagina corrispondente. I pulsanti non sono selezionabili e non sono cliccabili se gli indirizzi non sono validi. - Fai clic su Riprendi esecuzione dello script per eseguire il codice passo passo.
- Tieni presente che la rappresentazione ASCII è ora aggiornata. Vengono aggiornate anche tutte le interpretazioni dei valori.
- Personalizziamo l'strumento di ispezione dei valori in modo che mostri solo i valori in virgola mobile. Fai clic sul pulsante Impostazioni e seleziona solo Formato a virgola mobile in doppia precisione 32 bit e Formato a virgola mobile in doppia precisione 64 bit.
- Cambiamo la codifica da
dec
asci
. Tieni presente che le rappresentazioni dei valori vengono aggiornate di conseguenza. - Prova a navigare nel buffer della memoria con la tastiera o utilizzando la barra di navigazione. Ripeti il passaggio 4 per osservare le modifiche ai valori.
Ispezione della memoria di WebAssembly
L'oggetto WebAssembly.Memory
è un ArrayBuffer
che contiene i byte non elaborati della memoria dell'oggetto. Il riquadro Controllo memoria ti consente di ispezionare questi oggetti nelle applicazioni Wasm scritte in C++.
Per sfruttare al meglio l'ispezione WebAssembly.Memory
:
- Utilizza Chrome 107 o versioni successive. Controlla la tua versione all'indirizzo
chrome://version/
. - Installa l'estensione Supporto DevTools C/C++ (DWARF). Si tratta di un plug-in per il debug delle applicazioni WebAssembly C/C++ che utilizzano le informazioni di debug DWARF.
Per ispezionare il WebAssembly.Memory
di un oggetto:
- Apri DevTools in questa pagina dimostrativa.
- Nel riquadro Origini, apri
demo-cpp.cc
e imposta un punto di interruzione nella funzionemain()
alla riga 15:x[i] = n - i - 1;
. - Ricarica la pagina per eseguire l'applicazione. Il debugger si ferma al punto di interruzione.
- Nel riquadro Debugger, espandi Ambito > Locale.
Fai clic sull'icona
accanto all'array
x: int[10]
.In alternativa, fai clic con il tasto destro del mouse sull'array e seleziona Mostra nel riquadro dell'ispettore della memoria.
Per interrompere l'evidenziazione della memoria dell'oggetto, passa il mouse sopra il badge dell'oggetto nel riquadro Memory Inspector (Esamina memoria) e fai clic sul pulsante x
.
Per scoprire di più, consulta: