Debug del codice assembly in WinDbg (versione classica)

In WinDbg è possibile visualizzare il codice assembly immettendo comandi o usando la finestra Disassembly.

Finestra comando debugger

È possibile visualizzare il codice dell'assembly immettendo uno dei comandi u, ub, uu (Unassemble) nella finestra Comando debugger.

Finestra dissasembly

Per aprire o passare alla finestra Disassembly, scegliere Dissasembly dal menu Visualizza . È anche possibile premere ALT+7 o selezionare il pulsante Disassembly sulla barra degli strumenti. ALT+MAIUSC+7 chiuderà la finestra disassembly.

La schermata seguente mostra un esempio di finestra Disassembly.

Screenshot della finestra Disassembly in WinDbg.

Il debugger accetta una sezione di memoria, lo interpreta come istruzioni del computer binario e quindi lo disassembla per produrre una versione in linguaggio assembly delle istruzioni del computer. Il codice risultante viene visualizzato nella finestra Disassembly.

Nella finestra Disassembly è possibile eseguire le operazioni seguenti:

  • Per smontare una sezione diversa della memoria, nella casella Offset digitare l'indirizzo della memoria da smontare. È possibile premere INVIO dopo aver digitato l'indirizzo, ma non è necessario. La finestra Disassembly visualizza il codice prima di aver completato l'indirizzo; è possibile ignorare questo codice.

  • Per visualizzare altre sezioni di memoria, selezionare i pulsanti Precedente o Avanti o premere i tasti PAGE UP o PAGE DOWN. Questi comandi visualizzano rispettivamente il codice smontato dalle sezioni precedenti o seguenti della memoria. Premendo freccia DESTRA, FRECCIA SINISTRA, FRECCIA SU e FRECCIA GIÙ, è possibile spostarsi all'interno della finestra. Se si usano queste chiavi per spostarsi dalla pagina, verrà visualizzata una nuova pagina.

La finestra Disassembly include una barra degli strumenti contenente due pulsanti e un menu di scelta rapida con comandi aggiuntivi. Per accedere al menu, selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) sulla barra del titolo o selezionare l'icona visualizzata vicino all'angolo superiore destro della finestra. L'elenco seguente descrive alcuni dei comandi di menu.

  • Passare all'indirizzo corrente apre la finestra Origine con il file di origine che corrisponde alla riga selezionata nella finestra Disassembly e evidenzia questa riga.

  • Lo smontaggio prima dell'istruzione corrente causa l'immissione della riga corrente nella parte centrale della finestra Disassembly. Questo comando è l'opzione predefinita. Se questo comando viene cancellato, la riga corrente verrà visualizzata nella parte superiore della finestra Disassembly, che consente di risparmiare tempo perché il disassembling inverso può richiedere molto tempo.

  • Evidenziare le istruzioni dalla riga di origine corrente causa l'evidenziazione di tutte le istruzioni corrispondenti alla riga di origine corrente. Spesso, una singola riga di origine corrisponderà a più istruzioni di assembly. Se il codice è stato ottimizzato, queste istruzioni di assembly potrebbero non essere consecutive. Questo comando consente di trovare tutte le istruzioni assemblate dalla riga di origine corrente.

  • Mostra la riga di origine per ogni istruzione visualizza il numero di riga di origine corrispondente a ogni istruzione dell'assembly.

  • Mostra il file di origine per ogni istruzione visualizza il nome del file di origine corrispondente a ogni istruzione dell'assembly.

Vedi anche

Per altre informazioni sul debug degli assembly e sui comandi correlati e una spiegazione completa della visualizzazione dell'assembly, vedere Debug in modalità assembly.