Windows

Dependency Walker - Sådan bruges - Tutorial

Analyzing Dependencies with Dependency Walker

Analyzing Dependencies with Dependency Walker

Indholdsfortegnelse:

Anonim

Nogle gange vil normale fejlfindingstrin ikke skære det. Vi må måske gå ud over - mere som retsmedicinsk fejlfinding. I dag skriver jeg om et værktøj, som kan hjælpe os med at gøre det. Dependency Walker er et værktøj til at analysere afhængigheden af ​​en Windows-applikation - som funktioner, moduler osv. Det bygger et hierarkisk træ på alle de afhængige moduler af en exe, dll, sys osv.

Dependency Walker

Dependency Walker kan hjælpe dig med fejlfinding af applikationsfejl, filregistreringsfejl, brud på hukommelsesadgang og ugyldige sidefejl.

Dependency Walker bliver særligt nyttigt, hvis et bestemt program af din ikke er i gang, eller hvis en tjeneste fejler at starte med en fejl, der peger på en bestemt dll. I sådanne tilfælde kan du indlæse dette program eller dll i Dependency Walker, for at se, hvilken fil der mangler at indlæse eller hvilket modul der forårsager problemet - og derefter rette det.

Programmet lægger ikke bare modulerne, men det også scanninger for mulige fejl. Ifølge hjælpefilen udføres følgende job:

  • Registrerer manglende filer. Dette er filer, der kræves som afhængighed af et andet modul. Et symptom på dette problem er "Den dynamiske link bibliotek BAR.DLL kunne ikke findes i den angivne vej …" fejl.
  • Opdager ugyldige filer. Dette omfatter filer, der ikke er Win32 eller Win64-kompatible og filer, der er korrupte. Et symptom på dette problem er, at "Programmet eller DLL BAR.EXE ikke er et gyldigt Windows-billede" -fejl.
  • Registrerer import / eksportmatchninger. Verificerer, at alle funktioner, der importeres af et modul, faktisk eksporteres fra de afhængige moduler. Alle uløste importfunktioner markeres med en fejl. Et symptom på dette problem er "Procedurens indtastningspunkt FOO kunne ikke være placeret i den dynamiske link bibliotek BAR.DLL" fejl.
  • Detekterer cirkulære afhængighedsfejl. Dette er en meget sjælden fejl, men kan forekomme med videresendte funktioner.
  • Registrerer fejlmodulerede CPU typer af moduler. Dette sker, hvis et modul bygget til en CPU forsøger at indlæse et modul bygget til en anden CPU.
  • Registrerer checksum inkonsekvenser ved at verificere modulchecksummerne for at se om moduler er blevet ændret, efter at de blev bygget.
  • Registrerer modulkollisioner af fremhæver eventuelle moduler, der ikke lægger op til deres foretrukne baseadresse.
  • Registrerer modulets initialiseringsfejl ved at spore opkald til modulindgangspunkter og søge fejl.
  • Dependency Walker kan også udføre en run-time-profil for din applikation for at detektere dynamisk indlæste moduler og modul initialisering fejl. Den samme fejlkontrol ovenfra gælder også dynamisk indlæste moduler.

Jeg hjælper for eksempel en klient den anden dag - hun lastede Internet Explorer, men IE holdt sammen med at kollapse uden nogen specifikke fejl. Vi havde gjort det meste af den grundlæggende fejlfinding som deaktivering af add-ons og værktøjslinjer, nulstilling af IE til standardindstilling osv. Men det blev stadig ved at gå ned. Dette betød, at en eller flere filer, der kræves for at Internet Explorer skal køre korrekt, skabte et problem. Det er altid svært at fejlfinding sådanne tilfælde, men med Dependency Walker kan vi se om der er noget galt med en af ​​de afhængige filer.

Så jeg indlæste Internet Explorer i Dependency Walker.

Jeg udvide listen en efter en

Så gik jeg gennem hver af modulerne for at se, om jeg kunne finde noget mistænkeligt der. Jeg rullede gennem modulet og var heldig nok til at finde problemet.

Jeg fandt ud af, at filen IEFRAME.dll manglede. Så jeg gik og erstattede filen fra Windows Installation DVD. Det løste problemet. Nu kraschede Internet Explorer ikke længere.

Jeg håber, at dette vil fortælle dig, hvor nemt det er at bruge værktøjet til at finde ud af mulige afhængighedsfejl.

Sådan bruger du Dependency Walker

For at bruge Dependency Walker til at undersøge fejl, kan du følge disse trin:

  1. Start afhængighed Walker
  2. Klik på Åbn i menuen File for at indlæse problemfilen
  3. I menuen Vis, Klik på Start profilering. Dialogboksen Profilmodul vises
  4. Indtast eventuelle afbrydere, programargumenter, andre valgmuligheder, du vil have, og klik derefter på OK.

Afhængighed Walker vil indsprøjte dwinject.dll før fejlen opstår, og logger de hændelser, der finder sted på tidspunktet for fejlen.

Dependency Walker download

Du kan downloade Dependency Walker fra her.