Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O uso de comandos de extensão do depurador é muito semelhante ao uso de comandos do depurador. O comando é inserido na janela de Comando do Depurador, produzindo uma saída nesta janela ou uma alteração no aplicativo ou computador de destino.
Um comando de extensão do depurador real é um ponto de entrada em uma DLL chamada pelo depurador.
As extensões do depurador são invocadas pela seguinte sintaxe:
! [módulo.]extensão[argumentos]
O nome do módulo não deve ser seguido com a extensão de nome de arquivo .dll. Se o módulo incluir um caminho completo, o limite de tamanho de cadeia de caracteres padrão será de 255 caracteres.
Se o módulo ainda não tiver sido carregado, ele será carregado no depurador usando uma chamada para LoadLibrary(module). Depois que o depurador carrega a biblioteca de extensões, ele chama a função GetProcAddress para localizar o nome da extensão no módulo de extensão. O nome da extensão diferencia maiúsculas de minúsculas e deve ser inserido exatamente como aparece no ficheiro .def do módulo de extensão. Se o endereço da extensão for encontrado, a extensão será chamada.
Ordem de pesquisa
Se o nome do módulo não for especificado, o depurador procurará os módulos de extensão carregados para essa exportação.
A ordem de pesquisa padrão é a seguinte:
Os módulos de extensão que funcionam com todos os sistemas operacionais e em ambos os modos: Dbghelp.dll e winext\ext.dll.
O módulo de extensão que funciona em todos os modos, mas é específico do sistema operacional. Para o Windows XP e versões posteriores do Windows, este é o winxp\exts.dll.
O módulo de extensão que funciona com todos os sistemas operativos, mas é específico para um modo. Para o modo kernel, este é winext\kext.dll. Para o modo de usuário, este é winext\uext.dll.
O módulo de extensão que é específico tanto do sistema operativo como do modo. A tabela a seguir especifica esse módulo.
| Modo de Utilizador | Modo Kernel |
|---|---|
| winxp \ ntsdexts.dll | WinXP \ kdexts.dll |
Quando um módulo de extensão é descarregado, ele é removido da cadeia de pesquisa. Quando um módulo de extensão é carregado, ele é adicionado ao início da ordem de pesquisa. O comando .setdll (set Default Extension DLL) pode ser usado para promover qualquer módulo para o topo da cadeia de pesquisa. Usando este comando repetidamente, você pode controlar completamente a cadeia de pesquisa.
Use o comando .chain (List Debugger Extensions) para exibir uma lista de todos os módulos de extensão carregados em sua ordem de pesquisa atual.
Se tentar executar um comando de extensão que não esteja em nenhum dos módulos de extensão carregados, receberá uma mensagem de erro Exportação Não Encontrada.