Dependency Walker (Hatalı DLL Bulucu)
Índice:
Às vezes, as etapas normais de solução de problemas não são suficientes. Podemos precisar ir além - mais como solucionar problemas forenses. Hoje vou escrever sobre uma ferramenta que nos ajudará a fazer isso. Dependency Walker é uma ferramenta para analisar as dependências de um aplicativo do Windows - como funções, módulos, etc. Ele cria uma árvore hierárquica de todos os módulos dependentes de um exe, dll, sys, etc.
Dependency Walker
Dependency Walker pode ajudá-lo na solução de erros de aplicativos, erros de registro de arquivos, violações de acesso à memória e falhas de páginas inválidas.
Dependency Walker torna-se especialmente útil se um programa específico não está carregando ou um serviço está falhando para começar 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 não está carregando ou qual módulo está causando o problema - e, em seguida, corrigi-lo.
O programa não carrega apenas os módulos, mas também procura por possíveis erros. De acordo com o arquivo de Ajuda, ele executa os seguintes trabalhos:
- Detecta arquivos ausentes. Estes são arquivos que são necessários como uma dependência para 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 que estão corrompidos. Um sintoma desse problema é o erro “A aplicação 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 marcadas 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. Esse é 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 tentar carregar um módulo criado para uma CPU diferente.
- Detecta inconsistências de checksum verificando as somas de verificação do módulo para ver se algum módulo foi modificado depois de compilado.
- Detecta colisões de módulo destacando quaisquer módulos que não conseguem 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 por erros.
- Dependency Walker também pode executar um perfil de tempo de execução de seu aplicativo para detectar módulos dinamicamente carregados e falhas de inicialização do módulo. A mesma verificação de erros acima também se aplica a módulos carregados dinamicamente.
Por exemplo, eu estava ajudando um cliente outro dia - ela estava carregando o Internet Explorer, mas o IE continuava travando, sem nenhum erro específico. Nós tínhamos feito a maioria das soluções básicas de problemas, como desabilitar os complementos e barras de ferramentas, redefinir o IE para a configuração padrão, etc.Mas ainda continuava travando. Isso significava que um ou mais arquivos necessários para o Internet Explorer serem executados corretamente criavam um problema. É sempre difícil solucionar esses casos, mas com Dependency Walker, podemos ver se algo está errado com um dos arquivos dependentes.
Então eu carreguei o Internet Explorer no Dependency Walker.
Em seguida, expandi a lista um por um
Então eu passei por cada um dos módulos, para ver se eu poderia encontrar algo suspeito lá. Eu rolei pelo módulo e tive sorte o suficiente para encontrar o problema.
Eu descobri que o arquivo IEFRAME.dll estava faltando. Então eu fui e substitui o arquivo do DVD de instalação do Windows. Isso resolveu o problema. Agora o Internet Explorer não caiu mais.
Espero que isso lhe mostre 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:
- Iniciar Walker de Dependência
- Clique em Abrir no menu Arquivo para carregar o arquivo de problemas
- No menu Exibir, clique em Iniciar perfil. A caixa de diálogo Módulo de perfil aparece
- Digite qualquer opção, argumento de programa, outras opções desejadas e clique em OK.
Dependency Walker injetará dwinject.dll antes que o erro ocorra e registrará os eventos ocorridos no momento da ocorrência o erro
Dependency Walker download
Você pode baixar o Dependency Walker de aqui.
Intel confirma OQO para usar o Atom no PC portátil

Intel confirmou na quarta-feira que seu chip Atom será incluído em um computador portátil da OQO no A Intel confirmou na quarta-feira que seus chips Atom serão usados em um computador de mão da OQO, uma vitória significativa para o fabricante de chips.
Quais programas de autoloading devo usar?

Joseph Storer, de Bellingham, Massachusetts, tem a idéia certa. Ele quer saber quais programas que carregam automaticamente na inicialização NÃO devem ser desativados.
Usar o Gmail para combater o spam

O Gmail já oferece a melhor filtragem de spam para as contas do Gmail. Veja como aproveitá-lo com contas que não são do Gmail.