Dependency Walker - uma ferramenta avançada de solução de problemas

  • Ronald Sparks
  • 0
  • 2068
  • 340

Às vezes, as etapas normais de solução de problemas simplesmente não resolvem. Podemos precisar ir além - mais como solução de problemas forense. Hoje vou escrever sobre uma ferramenta que nos ajudará a fazer isso.  Dependency Walker é uma ferramenta para analisar as dependências de um aplicativo Windows - como funções, módulos, etc. Ele constrói uma árvore hierárquica de todos os módulos dependentes de um exe, dll, sys, etc..

Dependency Walker

Dependency Walker pode ajudá-lo a solucionar erros de aplicativo, erros de registro de arquivo, violações de acesso à memória e falhas de página inválida.

Dependency Walker torna-se especialmente útil se um programa específico seu não estiver carregando ou se um serviço não iniciar com um erro apontando para uma dll específica. Nesses casos, você pode carregar esse programa ou dll no Dependency Walker, para ver qual arquivo está falhando ao carregar ou qual módulo está causando o problema - e então corrigi-lo.

O programa não apenas carrega os módulos, mas também verifica possíveis erros. De acordo com o arquivo de Ajuda, ele executa as seguintes tarefas:

  • Detecta arquivos ausentes. Esses são arquivos necessários como dependência de outro módulo. Um sintoma desse problema é o erro “A biblioteca de vínculo dinâmico BAR.DLL não pôde ser encontrada no caminho especificado ...”.
  • Detecta arquivos inválidos. Isso inclui arquivos que não são compatíveis com Win32 ou Win64 e arquivos corrompidos. Um sintoma desse problema é o erro “O aplicativo ou DLL BAR.EXE não é uma imagem válida do Windows”.
  • Detecta incompatibilidades de importação / exportação. Verifica se todas as funções importadas por um módulo são realmente exportadas dos módulos dependentes. Todas as funções de importação não resolvidas são sinalizadas com um erro. Um sintoma desse problema é o erro “O ponto de entrada do procedimento FOO não pôde ser localizado na biblioteca de vínculo dinâmico BAR.DLL”.
  • Detecta erros de dependência circular. Este é um erro muito raro, mas pode ocorrer com funções encaminhadas.
  • Detecta tipos de módulos de CPU incompatíveis. Isso ocorre se um módulo construído para uma CPU tenta carregar um módulo construído para uma CPU diferente.
  • Detecta inconsistências de soma de verificação verificando as somas de verificação do módulo para ver se algum módulo foi modificado depois de construído.
  • Detecta colisões de módulos, destacando todos os módulos que falham ao carregar em seu endereço base preferido.
  • Detecta falhas de inicialização do módulo rastreando chamadas para pontos de entrada do módulo e procurando erros.
  • Dependency Walker também pode executar um perfil de tempo de execução de seu aplicativo para detectar módulos carregados dinamicamente e falhas de inicialização de módulo. A mesma verificação de erro acima também se aplica a módulos carregados dinamicamente.

Por exemplo, eu estava ajudando uma cliente outro dia - ela estava carregando o Internet Explorer, mas o IE continuava travando, sem nenhum erro específico. Tínhamos feito a maior parte da solução de problemas básicos, como desabilitar add-ons e barras de ferramentas, redefinir o IE para a configuração padrão, etc. Mas ele continuava travando. Isso significava que um ou mais arquivos necessários para o funcionamento adequado do Internet Explorer estava criando um problema. É sempre difícil solucionar esses casos, mas com Dependency Walker, podemos ver se há algo errado com um dos arquivos dependentes.

Então, carreguei o Internet Explorer no Dependency Walker.

Em seguida, ampliei a lista um por um

Em seguida, passei por cada um dos módulos, para ver se conseguia encontrar algo suspeito ali. Eu rolei pelo módulo e tive a sorte de encontrar o problema.

Descobri que o arquivo IEFRAME.dll estava faltando. Então, substituí o arquivo do DVD de instalação do Windows. Isso resolveu o problema. Agora o Internet Explorer não travou mais.

Espero que isto lhe diga como é fácil usar a ferramenta para descobrir possíveis erros de dependência.

Como usar o Dependency Walker

Para usar o Dependency Walker para investigar erros, você pode seguir estas etapas:

  1. Iniciar Dependency Walker
  2. Clique em Abrir no menu Arquivo para carregar o arquivo com problema
  3. No menu Exibir, clique em Iniciar criação de perfil. A caixa de diálogo do Módulo de Perfil aparece
  4. Digite quaisquer opções, argumentos do programa, outras opções desejadas e clique em OK.

Dependency Walker injetará dwinject.dll antes que o erro ocorra e registrará os eventos que ocorrem no momento do erro.

Download do Dependency Walker

Baixe a ferramenta de reparo do PC para encontrar e corrigir erros do Windows automaticamente

Você pode baixar Dependency Walker em aqui.




Ainda sem comentários

As análises, notícias e guias mais úteis do mundo da tecnologia. Muita informação que você precisa
Artigos sobre novas tecnologias. De forma breve e clara sobre as coisas mais importantes do mundo moderno. Guias e notícias úteis, análises e explicações detalhadas