Dependency Walker - Un outil de dépannage avancé

  • James Harrington
  • 0
  • 3889
  • 300

Parfois, les étapes de dépannage normales ne résoudront pas le problème. Il se peut que nous devions aller au-delà des attentes - plus comme le dépannage médico-légal. Aujourd'hui, je vais écrire sur un outil qui nous aidera à le faire.  Dépendance Walker est un outil pour analyser les dépendances d'une application Windows - comme des fonctions, des modules, etc. Il construit une arborescence hiérarchique de tous les modules dépendants d'un exe, dll, sys, etc..

Dépendance Walker

Dependency Walker peut vous aider à résoudre les erreurs d'application, les erreurs d'enregistrement de fichiers, les violations d'accès à la mémoire et les erreurs de page non valides.

Dependency Walker devient particulièrement utile si un de vos programmes spécifiques ne se charge pas ou si un service ne démarre pas avec une erreur pointant vers une DLL spécifique. Dans de tels cas, vous pouvez charger ce programme ou cette DLL dans Dependency Walker, pour voir quel fichier ne parvient pas à se charger ou quel module est à l'origine du problème - puis le réparer.

Le programme ne charge pas seulement les modules, mais il recherche également les erreurs potentielles. Selon le fichier d'aide, il effectue les travaux suivants:

  • Détecte les fichiers manquants. Ce sont des fichiers qui sont requis en tant que dépendance à un autre module. Un symptôme de ce problème est l'erreur «La bibliothèque de liens dynamiques BAR.DLL est introuvable dans le chemin spécifié…».
  • Détecte les fichiers invalides. Cela inclut les fichiers qui ne sont pas compatibles Win32 ou Win64 et les fichiers corrompus. Un symptôme de ce problème est l'erreur «L'application ou la DLL BAR.EXE n'est pas une image système Windows valide».
  • Détecte les incompatibilités d'importation / exportation. Vérifie que toutes les fonctions importées par un module sont effectivement exportées à partir des modules dépendants. Toutes les fonctions d'importation non résolues sont signalées par une erreur. Un symptôme de ce problème est l'erreur «Le point d'entrée de procédure FOO n'a pas pu être localisé dans la bibliothèque de liens dynamiques BAR.DLL».
  • Détecte les erreurs de dépendance circulaire. C'est une erreur très rare, mais peut se produire avec des fonctions transférées.
  • Détecte les types de modules de CPU incompatibles. Cela se produit si un module construit pour une CPU tente de charger un module construit pour une CPU différente.
  • Détecte les incohérences de la somme de contrôle en vérifiant les sommes de contrôle des modules pour voir si des modules ont été modifiés après leur construction.
  • Détecte les collisions de modules en mettant en évidence les modules qui ne se chargent pas à leur adresse de base préférée.
  • Détecte les échecs d'initialisation du module en suivant les appels aux points d'entrée du module et en recherchant les erreurs.
  • Dependency Walker peut également effectuer un profil d'exécution de votre application pour détecter les modules chargés dynamiquement et les échecs d'initialisation de module. La même vérification des erreurs ci-dessus s'applique également aux modules chargés dynamiquement.

Par exemple, j'aidais un client l'autre jour - elle chargeait Internet Explorer, mais IE n'arrêtait pas de planter, sans aucune erreur spécifique. Nous avions effectué la plupart des dépannages de base tels que la désactivation des modules complémentaires et des barres d'outils, la réinitialisation d'IE aux paramètres par défaut, etc., mais cela continuait à planter. Cela signifiait qu'un ou plusieurs fichiers nécessaires au bon fonctionnement d'Internet Explorer créaient un problème. Il est toujours difficile de résoudre de tels cas, mais avec Dependency Walker, nous pouvons voir si quelque chose ne va pas avec l'un des fichiers dépendants.

J'ai donc chargé Internet Explorer dans Dependency Walker.

J'ai ensuite élargi la liste une par une

Ensuite, j'ai parcouru chacun des modules, pour voir si je pouvais y trouver quelque chose de suspect. J'ai fait défiler le module et j'ai eu la chance de trouver le problème.

J'ai trouvé que le fichier IEFRAME.dll était manquant. Je suis donc allé et j'ai remplacé le fichier du DVD d'installation de Windows. Cela a résolu le problème. Maintenant, Internet Explorer ne plante plus.

J'espère que cela vous dira à quel point il est facile d'utiliser l'outil pour découvrir d'éventuelles erreurs de dépendance.

Comment utiliser Dependency Walker

Pour utiliser Dependency Walker pour enquêter sur les erreurs, vous pouvez suivre ces étapes:

  1. Démarrer Dependency Walker
  2. Cliquez sur Ouvrir dans le menu Fichier pour charger le fichier problématique
  3. Dans le menu Affichage, cliquez sur Démarrer le profilage. La boîte de dialogue Module de profil apparaît
  4. Tapez les commutateurs, les arguments du programme, les autres options de votre choix, puis cliquez sur OK.

Dependency Walker injectera dwinject.dll avant que l'erreur ne se produise et enregistrera les événements qui se déroulent au moment de l'erreur.

Téléchargement de Dependency Walker

Téléchargez l'outil de réparation PC pour trouver et corriger automatiquement les erreurs Windows

Vous pouvez télécharger Dependency Walker à partir de ici.




Personne n'a encore commenté ce post.

Les revues, nouvelles et guides les plus utiles du monde de la technologie. Beaucoup dont vous avez besoin
Articles sur les nouvelles technologies. Brièvement et clairement sur les choses les plus importantes du monde moderne. Guides et actualités utiles, critiques détaillées et explications