Partager via


# (Rechercher le modèle de désassemblement)

La commande de signe numérique (#) recherche le modèle spécifié dans le code de désassemblement.

# [Pattern] [Address [ L Size ]] 

Paramètres

Modèle

Spécifie le modèle à rechercher dans le code de désassemblement. Le modèle peut contenir une variété de caractères génériques et de spécificateurs. Pour plus d’informations sur la syntaxe, consultez Syntaxe de caractères génériques de chaîne. Si vous souhaitez inclure des espaces dans Pattern, vous devez placer le modèle entre guillemets. Le modèle ne respecte pas la casse. Si vous avez déjà utilisé la # commande et que vous omettez Pattern, la commande réutilise le modèle le plus récemment utilisé.

Adresse

Spécifie l’adresse où la recherche commence. Pour plus d’informations sur la syntaxe, consultez Syntaxe des adresses et des plages d’adresses.

Taille

Spécifie le nombre d’instructions à rechercher. Si vous omettez Size, la recherche se poursuit jusqu’à ce que la première correspondance se produise.

Environnement

Élément Description
Modes Mode utilisateur, mode noyau
Targets Vidage en direct sur incident
Plateformes Tous

Informations supplémentaires

Pour plus d’informations sur le débogage d’assembly et les commandes associées, consultez Débogage en mode Assembly.

Remarques

Si vous avez précédemment utilisé la # commande et que vous omettez Adresse, la recherche commence là où la recherche précédente s’est terminée.

Cette commande fonctionne en recherchant le modèle spécifié dans le texte désassemblé. Vous pouvez utiliser cette commande pour rechercher des noms de registre, des constantes ou toute autre chaîne qui apparaît dans la sortie de désassemblement. Vous pouvez répéter la commande sans le paramètre Address pour rechercher les occurrences successives du modèle.

Vous pouvez afficher les instructions de désassemblement à l’aide de la commande u (Unassemble) ou de la fenêtre Désassemblement dans WinDbg. L’affichage de désassemblement contient jusqu’à quatre parties : décalage d’adresse, code binaire, langage d’assembly mnémonique et détails du langage d’assembly. L’exemple suivant montre un affichage possible.

0040116b    45          inc         ebp            
0040116c    fc          cld                        
0040116d    8945b0      mov         eax,[ebp-0x1c] 

La # commande peut rechercher du texte dans n’importe quelle partie de l’affichage de désassemblement. Par exemple, vous pouvez utiliser # eax 0040116b pour rechercher l’instruction à l’adresse mov eax,[ebp-0x1c] 0040116d. Les commandes suivantes recherchent également cette instruction.

#  [ebp?0x  0040116b 
#  mov  0040116b 
#  8945*  0040116b 
#  116d  0040116b 

Toutefois, vous ne pouvez pas rechercher mov eax* comme une seule unité, car mov et eax apparaissent dans différentes parties de l’affichage. Utilisez plutôt mov*eax.

En guise d’exemple supplémentaire, vous pouvez émettre la commande suivante pour rechercher la première référence à la fonction strlen après le point d’entrée main.

# strlen main

De même, vous pouvez émettre les deux commandes suivantes pour rechercher la première instruction jnz après l’adresse 0x779F9FBA, puis rechercher l’instruction jnz suivante.

# jnz 779f9fba# 

Lorsque vous omettez Pattern ou Address, leurs valeurs sont basées sur l’utilisation précédente de la # commande. Si vous omettez l’un ou l’autre des paramètres la première fois que vous émettez la # commande, aucune recherche n’est effectuée. Toutefois, les valeurs de Pattern et Address sont initialisées même dans cette situation.

Si vous incluez Pattern ou Address, sa valeur est définie sur la valeur entrée. Si vous omettez Adresse, elle est initialisée à la valeur actuelle du compteur de programme. Si vous omettez Pattern, il est initialisé sur un modèle vide.