Partilhar via


# (Pesquisar padrão de desmontagem)

O comando number sign (#) pesquisa o padrão especificado no código de desmontagem.

# [Pattern] [Address [ L Size ]] 

Parâmetros

Padrão

Especifica o padrão a ser pesquisado no código de desmontagem. O padrão pode conter uma variedade de caracteres curinga e especificadores. Para obter mais informações sobre a sintaxe, consulte Sintaxe curinga de cadeia de caracteres. Se você quiser incluir espaços em Padrão, deverá colocar o padrão entre aspas. O padrão não diferencia maiúsculas de minúsculas. Se você já tiver usado o # comando e omitir Pattern, o comando reutilizará o padrão usado mais recentemente.

Endereço

Especifica o endereço em que a pesquisa começa. Para obter mais informações sobre a sintaxe, consulte Sintaxe de intervalo de endereços e endereços.

Tamanho

Especifica o número de instruções a serem pesquisadas. Se você omitir Size, a pesquisa continuará até que a primeira correspondência ocorra.

Ambiente

Item Descrição
Modos Modo de usuário, modo kernel
Destinos Ao vivo, despejo de memória
Plataformas Tudo

Informações adicionais

Para obter mais informações sobre depuração de assembly e comandos relacionados, consulte Depuração no modo assembly.

Comentários

Se você usou o # comando anteriormente e omitiu Endereço, a pesquisa começa onde a pesquisa anterior terminou.

Esse comando funciona pesquisando o texto desmontado para o padrão especificado. Você pode usar esse comando para localizar nomes de registro, constantes ou qualquer outra cadeia de caracteres que apareça na saída de desmontagem. Você pode repetir o comando sem o parâmetro Address para localizar ocorrências sucessivas do padrão.

Você pode exibir instruções de desmontagem usando o comando u (Unassemble) ou usando a janela Desmontagem no WinDbg. A exibição de desmontagem contém até quatro partes: deslocamento de endereço, código binário, mnemônico da linguagem assembly e detalhes da linguagem assembly. O exemplo a seguir mostra uma possível exibição.

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

O # comando pode pesquisar texto em qualquer parte da exibição desmontada. Por exemplo, você pode usar # eax 0040116b para encontrar a mov eax,[ebp-0x1c] instrução no endereço 0040116d. Os comandos a seguir também encontram esta instrução.

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

No entanto, você não pode pesquisar mov eax* como uma única unidade, pois mov e eax aparecem em diferentes partes da exibição. Em vez disso, use mov*eax.

Como exemplo adicional, você pode emitir o comando a seguir para pesquisar a primeira referência à função strlen após o ponto de entrada main.

# strlen main

Da mesma forma, você pode emitir os dois comandos a seguir para encontrar a primeira instrução jnz após o endereço 0x779F9FBA e, em seguida, encontrar a próxima instrução jnz depois disso.

# jnz 779f9fba# 

Quando você omite Padrão ou Endereço, seus valores são baseados no uso anterior do # comando. Se você omitir qualquer parâmetro na primeira vez que emitir o # comando, nenhuma pesquisa será executada. No entanto, os valores de Padrão e Endereço são inicializados mesmo nessa situação.

Se você incluir Padrão ou Endereço, seu valor será definido como o valor inserido. Se você omitir Address, ele será inicializado para o valor atual do contador do programa. Se você omitir Pattern, ele será inicializado para um padrão vazio.