Share via


# (Buscar patrón de desensamblaje)

El comando de signo de número (#) busca el patrón especificado en el código de desensamblaje.

# [Pattern] [Address [ L Size ]] 

Parámetros

Patrón

Especifica el patrón que se va a buscar en el código de desensamblaje. El patrón puede contener una variedad de caracteres comodín y especificadores. Para obtener más información sobre la sintaxis, vea Sintaxis de caracteres comodín de cadena. Si desea incluir espacios en Pattern, debe incluir el patrón entre comillas. El patrón no distingue mayúsculas de minúsculas. Si ha usado previamente el # comando y omite Pattern, el comando reutiliza el patrón usado más recientemente.

Dirección

Especifica la dirección donde comienza la búsqueda. Para obtener más información sobre la sintaxis, vea Sintaxis de intervalo de direcciones y direcciones.

Tamaño

Especifica el número de instrucciones que se van a buscar. Si omite Size, la búsqueda continúa hasta que se produzca la primera coincidencia.

Entorno

Elemento Descripción
Modos Modo de usuario, modo kernel
Targets Volcado de memoria activo y de memoria
Plataformas All

Información adicional

Para obtener más información sobre la depuración de ensamblados y los comandos relacionados, vea Depuración en modo de ensamblado.

Comentarios

Si usó anteriormente el # comando y omite Address, la búsqueda comienza donde finalizó la búsqueda anterior.

Este comando funciona buscando el texto desensamblar para el patrón especificado. Puede usar este comando para buscar nombres de registro, constantes o cualquier otra cadena que aparezca en la salida de desensamblaje. Puede repetir el comando sin el parámetro Address para buscar repeticiones sucesivas del patrón.

Puede ver las instrucciones de desensamblado mediante el comando u (Unassemble) o mediante la ventana Desensamblado de WinDbg. La pantalla de desensamblaje contiene hasta cuatro partes: Desplazamiento de dirección, Código binario, mnemonic del lenguaje ensamblado y Detalles del lenguaje ensamblado. En el ejemplo siguiente se muestra una posible presentación.

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

El # comando puede buscar texto dentro de cualquier parte única de la pantalla de desensamblaje. Por ejemplo, podría usar # eax 0040116b para buscar la instrucción en la mov eax,[ebp-0x1c] dirección 0040116d. Los siguientes comandos también encuentran esta instrucción.

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

Sin embargo, no se puede buscar mov eax* como una sola unidad, ya que mov y eax aparecen en diferentes partes de la pantalla. En su lugar, use mov*eax.

Como ejemplo adicional, podría emitir el siguiente comando para buscar la primera referencia a la función strlen después del punto de entrada principal.

# strlen main

Del mismo modo, podría emitir los dos comandos siguientes para encontrar la primera instrucción jnz después de la dirección 0x779F9FBA y, a continuación, encontrar la siguiente instrucción jnz después de eso.

# jnz 779f9fba# 

Cuando se omite Pattern o Address, sus valores se basan en el uso anterior del # comando. Si omite cualquiera de los parámetros la primera vez que emite el # comando, no se realiza ninguna búsqueda. Sin embargo, los valores de Patrón y Dirección se inicializan incluso en esta situación.

Si incluye Patrón o Dirección, su valor se establece en el valor especificado. Si omite Address, se inicializa con el valor actual del contador del programa. Si omite Pattern, se inicializa en un patrón vacío.