.reload (Módulo de recarregamento)

O comando .reload exclui todas as informações de símbolo para o módulo especificado e recarrega esses símbolos conforme a necessidade. Em alguns casos, esse comando também recarrega ou descarrega o próprio módulo.

.reload [Options] [Module[=Address[,Size[,Timestamp]]]] 
.reload -?

Parâmetros

Options Qualquer uma das seguintes opções:

/d
Recarregue todos os módulos na lista de módulos do depurador. (Quando você omite todos os parâmetros, essa situação é o padrão durante a depuração no modo de usuário.)

/f
Força o depurador a carregar os símbolos imediatamente. Esse parâmetro substitui o carregamento lento de símbolos. Para obter mais informações, consulte a seção Comentários a seguir.

/i
Ignora uma incompatibilidade nas versões do arquivo .pdb. (Se você não incluir esse parâmetro, o depurador não carregará arquivos de símbolos incompatíveis.) Quando você usa /i, /f também é usado, mesmo que você não o especifique explicitamente.

/l
Lista os módulos, mas não recarrega seus símbolos. (No modo kernel, esse parâmetro fornece saída semelhante ao comando lm.)

/n
Recarrega apenas símbolos do kernel. Esse parâmetro não recarrega símbolos de usuário. (Você pode usar essa opção somente durante a depuração no modo kernel.)

/o
Força os arquivos armazenados em cache no armazenamento downstream de um servidor de símbolos a serem substituídos. Ao usar esse sinalizador, você também deve incluir /f. Por padrão, os arquivos de armazenamento downstream nunca são substituídos.

Como o servidor de símbolos usa nomes de arquivo distintos para os símbolos de cada compilação diferente de um binário, você não precisa usar essa opção, a menos que acredite que seu armazenamento downstream tenha sido corrompido.

/s
Recarrega todos os módulos na lista de imagens do módulo do sistema. (Quando você omite todos os parâmetros, essa situação é o padrão durante a depuração no modo kernel.)

Se estiver carregando um módulo de sistema individual por nome enquanto executa a depuração no modo de usuário, você deverá incluir /s.

/u
Descarrega o módulo especificado e todos os seus símbolos. O depurador descarrega qualquer módulo carregado cujo nome corresponda a Module, independentemente do caminho completo. Os nomes das imagens também são pesquisados. Para obter mais informações, confira a observação na seção Comentários a seguir.

/unl
Recarrega símbolos com base nas informações da imagem na lista de módulos descarregados.

/user
Recarrega apenas símbolos de usuário. (Você pode usar essa opção somente durante a depuração no modo kernel.)

/v
Ativa o modo detalhado.

/w
Trata Module como uma cadeia de caracteres literal. Esse tratamento impede que o depurador expanda caracteres curinga.

Módulo
Especifica o nome de uma imagem no sistema de destino para a qual recarregar símbolos no computador host. Module deve incluir o nome e a extensão de nome do arquivo. A menos que você use a opção /w, Module pode conter vários caracteres curinga e especificadores. Para obter mais informações sobre a sintaxe, confira Sintaxe do curinga da cadeia de caracteres. Se você omitir Module, o comportamento do comando .reload dependerá de quais Options serão usados.

Endereço
Especifica o endereço base do módulo. Normalmente, você precisará ter esse endereço somente se o cabeçalho da imagem tiver sido corrompido ou estiver paginado.

Tamanho
Especifica o tamanho da imagem do módulo. Em muitas situações, o depurador sabe o tamanho correto do módulo. Quando o depurador não souber o tamanho correto, você deverá especificar Size. Esse tamanho pode ser o tamanho real do módulo ou um número maior, mas o tamanho não deve ser um número menor. Normalmente, você precisará ter esse tamanho somente se o cabeçalho da imagem tiver sido corrompido ou estiver paginado.

Timestamp
Especifica o carimbo de data/hora da imagem do módulo. Em muitas situações, o depurador sabe o carimbo de data/hora correto do módulo. Quando o depurador não souber os carimbos de data/hora, você deverá especificar Timestamp. Normalmente, você precisará ter esse carimbo de data/hora somente se o cabeçalho da imagem tiver sido corrompido ou estiver paginado.

Observação Não deve haver espaço em branco entre os parâmetros Address, Size e Timestamp.

-?
Exibe um breve texto de ajuda para esse comando.

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 o carregamento de símbolos adiado (lento), confira Carregamento de símbolos adiado. Para obter mais informações sobre outras opções de símbolo, confira Definindo opções de símbolo.

Comentários

O comando .reload não faz com que as informações do símbolo sejam lidas. Em vez disso, esse comando permite que o depurador saiba que os arquivos de símbolo podem ter sido alterados ou que um novo módulo deve ser adicionado à lista de módulos. Esse comando faz com que o depurador revise sua lista de módulos e exclua suas informações de símbolo para os módulos especificados. As informações de símbolo reais não são lidas nos arquivos .pdb individuais até que sejam necessárias. (Esse tipo de carregamento é conhecido como carregamento de símbolo lento ou carregamento de símbolo adiado.)

Você pode forçar o carregamento de símbolos usando a opção /f ou emitindo um comando ld (Carregar Símbolos).

O comando .reload será útil se o sistema parar de responder (ou seja, falhar), o que pode fazer com que você perca símbolos para o computador de destino que está sendo depurado. O comando também pode ser útil se você tiver atualizado a árvore de símbolos.

Se o cabeçalho da imagem estiver incorreto por algum motivo, por exemplo, o módulo está sendo descarregado ou está paginado, você poderá carregar símbolos corretamente usando o argumento /unl ou especificando Address e Size.

O comando .reload /u executa uma pesquisa ampla. O depurador primeiro tenta corresponder Module com um nome de módulo exato, independentemente do caminho. Se o depurador não conseguir localizar essa correspondência, Module será tratado como o nome da imagem carregada. Por exemplo, se o HAL que reside na memória tiver o nome de módulo halacpi.dll, ambos os comandos a seguir descarregarão seus símbolos.

kd> .reload /u halacpi.dll

kd> .reload /u hal

Se você estiver executando a depuração no modo de usuário e desejar carregar um módulo que não faz parte da lista de módulos do aplicativo de destino, será preciso incluir a opção /s, como mostra o exemplo a seguir.

0:000> .reload /u ntdll.dll
Unloaded ntdll.dll

0:000> .reload /s /f ntdll.dll