# (Cercare il modello di disassemblaggio)
Il comando number sign (#) cerca il modello specificato nel codice disassembly.
# [Pattern] [Address [ L Size ]]
Parametri
Modello
Specifica il modello da cercare nel codice disassembly. Il modello può contenere un'ampia gamma di caratteri jolly e identificatori. Per altre informazioni sulla sintassi, vedere Sintassi con caratteri jolly stringa. Se si desidera includere spazi in Pattern, è necessario racchiudere il modello tra virgolette. Il modello non è distinzione tra maiuscole e minuscole. Se in precedenza è stato usato il # comando e si omette Pattern, il comando riutilizza il modello usato più di recente.
Indirizzo
Specifica l'indirizzo in cui inizia la ricerca. Per altre informazioni sulla sintassi, vedere Sintassi indirizzo e intervallo di indirizzi.
Size
Specifica il numero di istruzioni da cercare. Se si omette Dimensione, la ricerca continua fino a quando non si verifica la prima corrispondenza.
Ambiente
Elemento | Descrizione |
---|---|
Modalità | Modalità utente, modalità kernel |
Targets | Dump live, arresto anomalo |
Piattaforme | Tutti |
Informazioni aggiuntive
Per altre informazioni sul debug degli assembly e sui comandi correlati, vedere Debug in modalità assembly.
Commenti
Se in precedenza è stato usato il # comando e si omette Indirizzo, la ricerca inizia dove è terminata la ricerca precedente.
Questo comando funziona cercando il testo smontato per il modello specificato. È possibile usare questo comando per trovare nomi, costanti o qualsiasi altra stringa visualizzata nell'output di disassembly. È possibile ripetere il comando senza il parametro Address per trovare occorrenze successive del modello.
È possibile visualizzare le istruzioni di disassembly usando il comando u (Unassemble) o usando la finestra Disassembly in WinDbg. La visualizzazione del disassembly contiene fino a quattro parti: Offset degli indirizzi, Codice binario, Linguaggio assembly mnemonic e Dettagli del linguaggio assembly. Nell'esempio seguente viene illustrato un possibile display.
0040116b 45 inc ebp
0040116c fc cld
0040116d 8945b0 mov eax,[ebp-0x1c]
Il # comando può cercare testo all'interno di qualsiasi singola parte della visualizzazione disassembly. Ad esempio, è possibile usare # eax 0040116b per trovare l'istruzione all'indirizzo mov eax,[ebp-0x1c]
0040116d. I comandi seguenti trovano anche questa istruzione.
# [ebp?0x 0040116b
# mov 0040116b
# 8945* 0040116b
# 116d 0040116b
Tuttavia, non è possibile cercare mov eax*
come singola unità, perché mov e eax appaiono in diverse parti del display. Usare invece mov*eax
.
Come esempio aggiuntivo, è possibile eseguire il comando seguente per cercare il primo riferimento alla funzione strlen dopo il punto di ingresso principale.
# strlen main
Analogamente, è possibile eseguire i due comandi seguenti per trovare la prima istruzione jnz dopo l'indirizzo 0x779F9FBA e quindi trovare l'istruzione jnz successiva dopo.
# jnz 779f9fba#
Quando si omette Pattern o Address, i relativi valori si basano sull'uso precedente del # comando. Se si omette un parametro la prima volta che si esegue il # comando, non viene eseguita alcuna ricerca. Tuttavia, i valori di Pattern e Address vengono inizializzati anche in questa situazione.
Se si include Pattern o Address, il relativo valore è impostato sul valore immesso. Se si omette Indirizzo, viene inizializzato nel valore corrente del contatore del programma. Se si omette Pattern, viene inizializzato in un modello vuoto.