Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La finestra Disassembly mostra il codice assembly corrispondente alle istruzioni create dal compilatore. Se si esegue il debug di codice gestito, queste istruzioni di assembly corrispondono al codice nativo creato dal compilatore JIT (Just-in-Time), non al linguaggio MSIL (Microsoft Intermediate Language) creato dal compilatore di Visual Studio.
Annotazioni
Per sfruttare al meglio la finestra Disassembly , comprendere o apprendere le nozioni di base della programmazione del linguaggio assembly. Il materiale di riferimento per i set di istruzioni Intel è disponibile nel secondo volume dei manuali dell'architettura. Questo materiale si applica in genere anche ai set di istruzioni AMD.
Questa funzionalità è disponibile solo se è abilitato il debug a livello di indirizzo. Non è disponibile per il debug di script o SQL.
Oltre alle istruzioni di assembly, la finestra Disassembly può visualizzare le informazioni facoltative seguenti:
Indirizzo di memoria in cui si trova ogni istruzione. Per le applicazioni native, si tratta dell'indirizzo di memoria effettivo. Per Visual Basic o C#, si tratta di un offset dall'inizio della funzione.
Codice sorgente da cui deriva il codice assembly.
Byte di codice, ovvero le rappresentazioni in byte delle istruzioni MSIL o del computer effettivo.
Nomi di simboli per gli indirizzi di memoria.
Numeri di riga corrispondenti al codice sorgente.
Le istruzioni in linguaggio assembly sono costituite da mnemonic, abbreviazioni per i nomi delle istruzioni e simboli per variabili, registri e costanti. Ogni istruzione del linguaggio del computer è rappresentata da un mnemonico in linguaggio assembly seguito facoltativamente da uno o più simboli.
Il codice assembly si basa principalmente sui registri del processore o, per il codice gestito, i registri di Common Language Runtime. È possibile usare la finestra Disassembly insieme alla finestra Registri , che consente di esaminare il contenuto del registro.
Per visualizzare le istruzioni del codice computer nel formato numerico non elaborato, anziché come linguaggio di assembly, usare la finestra Memoria o selezionare Byte di codice dal menu di scelta rapida nella finestra Disassembly .
Usare la finestra Disassembly
Per abilitare la finestra Disassembly , in Strumenti>Opzioni>debug selezionare Abilita debug a livello di indirizzo.
Per aprire la finestra Disassembly durante il debug, selezionare Debug>disassembly> o premere CTRL + ALT + D.
Annotazioni
Le finestre di dialogo e i comandi di menu visualizzati potrebbero essere diversi da quelli descritti in questo articolo a seconda delle impostazioni o dell'edizione attiva. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti . Per altre informazioni, vedere Reimpostare tutte le impostazioni.
Per attivare o disattivare le informazioni facoltative, fare clic con il pulsante destro del mouse nella finestra Disassembly e impostare o deselezionare le opzioni desiderate nel menu di scelta rapida.
Una freccia gialla nel margine sinistro contrassegna il punto di esecuzione corrente. Per il codice nativo, il punto di esecuzione corrisponde al contatore del programma della CPU. Questa posizione mostra l'istruzione successiva che verrà eseguita nel tuo programma.
Scorri verso l'alto o verso il basso nella memoria
Quando si visualizza il contenuto della memoria in una finestra Memoria o nella finestra Disassembly , è possibile usare la barra di scorrimento verticale per spostarsi verso l'alto o verso il basso nello spazio di memoria.
Per scorrere verso il basso (passare a un indirizzo di memoria superiore), fare clic sulla barra di scorrimento verticale sotto la casella di scorrimento.
Per scorrere verso l'alto (passare a un indirizzo di memoria inferiore), fare clic sulla barra di scorrimento verticale sopra il pollice.
Si noterà anche che la barra di scorrimento verticale funziona in modo non standard. Lo spazio degli indirizzi di un computer moderno è molto grande e sarebbe facile perdersi afferrando il pollice della barra di scorrimento e trascinandolo in una posizione casuale. Per questo motivo, il pollice è "springloaded" e rimane sempre al centro della barra di scorrimento. Nelle applicazioni di codice nativo è possibile scorrere verso l'alto o verso il basso, ma non è possibile scorrere liberamente.
Nelle applicazioni gestite, il disassembly è limitato a una funzione ed è possibile scorrere normalmente.
Si noterà che gli indirizzi più alti vengono visualizzati nella parte inferiore della finestra. Per visualizzare un indirizzo superiore, è necessario spostarsi verso il basso, non verso l'alto.
Spostare verso l'alto o verso il basso un'istruzione
- Fare clic sulla freccia nella parte superiore o inferiore della barra di scorrimento verticale.