Visualizzazione del codice

Le viste del codice combinano l'evidenziazione della sintassi, blocchi comprimibili, la navigazione basata sugli indirizzi e i riferimenti incrociati. Utilizzare il listato ad alto livello per comprendere una procedura e il disassemblaggio e i byte del file per verificare come è stato ottenuto quel risultato.

Evidenziazione e navigazione degli identificatori

Posizionare il cursore su un registro, una variabile o un nome di funzione per evidenziare le occorrenze corrispondenti nell'elenco corrente. Le variabili locali come var_XX e str_XX sono inoltre evidenziate quando utilizzate come base di un'espressione membro, ad esempio str_1.Value. Selezionando un identificatore global_XX vengono evidenziate le sue occorrenze all'interno della procedura corrente; tale evidenziazione è separata da una ricerca di riferimenti su tutto il progetto.

Fare doppio clic su una chiamata di procedura riconosciuta per aprire la procedura chiamata. Costanti simili agli indirizzi possono invece portare ai byte corrispondenti nell'Editor HEX. Utilizzare Esc, le frecce di navigazione o i pulsanti Indietro/Avanti del mouse per spostarsi nella cronologia di visualizzazione.

Combinazione di codice decompilato e disassemblato

Fare clic con il pulsante destro sul listing decompilato e selezionare Copia nel disassemblatore (Copy to disassembler), oppure premere D nella vista del codice. Questo fonde le istruzioni ricostruite con il listato a basso livello per la procedura corrente. Per mantenere la posizione corrente, posizionare il cursore sull'indirizzo pertinente loc_ prima di invocare il comando.

Mantenere Aggiungi Indirizzi (Add Addresses) abilitato nelle impostazioni di decompilazione quando si utilizza questo flusso di lavoro. Il disassemblatore visualizza sempre gli indirizzi; Aggiungi Indirizzi controlla la vista del Decompilatore.

Codice decompilato e disassemblato nello stesso listato

Rinomina delle variabili

Per VB5/6 P-Code e Native Code, fare clic con il pulsante destro su una variabile e selezionare Rinomina variabile (Rename variable), oppure posizionare il cursore sulla variabile e premere N. Inserire un nome di analisi significativo. Il decompilatore controlla le collisioni di nomi e le parole chiave riservate. Per annullare una rinomina, utilizzare Annulla rinomina (Undo renaming) o Ctrl+Shift+Z. Questo comando è indipendente dall'annullamento dell'editing del testo ordinario.

Rinominare rende l'elenco recuperato più facile da analizzare; non recupera un nome che è stato rimosso dalla compilazione. Trattare i nomi assegnati dall'analista come annotazioni quando si comunicano le risultati.

Trovare chiamanti e riferimenti a variabili globali

Per trovare i chiamanti, fare clic con il pulsante destro su una procedura in Esplora soluzioni (Solution explorer) e selezionare Trova riferimenti (Find references), oppure premere X con quella procedura selezionata nell'albero. I risultati elencano le procedure contenenti chiamate riconosciute ad essa. Fare doppio clic su un risultato per ispezionare il chiamante. Questo flusso di lavoro supporta VB5/6 e .NET; il supporto per .NET è stato aggiunto nella versione 12.4.

Per investigare una variabile globale, posizionare il cursore sul suo identificatore nella vista del codice e premere X. Lo stesso tasto cerca quindi i riferimenti alle procedure nell'albero e i riferimenti alle variabili globali nel codice. Un elenco di riferimenti riconosciuti non stabilisce che non ci siano ulteriori usi indiretti, dinamicamente risolti o offuscati.

Scorciatoie contestuali

Area attivaScorciatoiaAzione
CodiceNRinomina la variabile sotto il cursore (VB5/6).
CodiceXTrova riferimenti alla variabile globale sotto il cursore.
CodiceDCopia il codice decompilato corrente nel disassemblatore.
CodiceF4Traccia all'indirizzo sulla riga corrente; richiede funzionalità di Tracing.
CodiceCtrl+Shift+ZAnnulla la rinomina della variabile sotto il cursore.
AlberoXTrova riferimenti alla procedura selezionata.
AlberoGApri la finestra di dialogo per passare a una sezione.
AlberoCtrl+CCopia il percorso completo dell'albero dell'oggetto selezionato.
AlberoSpace or InsertSeleziona o deseleziona l'elemento.

Le scorciatoie a lettera singola dipendono dalla vista focalizzata e non sostituiscono la digitazione normale nei campi di input. Utilizzare Alt+1 per cambiare il focus. Vedere Ricerca di stringhe per Ctrl+T e Ctrl+F, Passaggio a un indirizzo per i percorsi dell'albero e gli indirizzi, e Tracciamento per le limitazioni dell'emulatore.