Windows

Dependency Walker - Slik bruker du - Tutorial

Analyzing Dependencies with Dependency Walker

Analyzing Dependencies with Dependency Walker

Innholdsfortegnelse:

Anonim

Noen ganger vil normalt feilsøkingstrinn bare ikke kutte det. Vi må kanskje gå utover - mer som rettsmedisinsk feilsøking. I dag skal jeg skrive om et verktøy som vil hjelpe oss med å gjøre det. Dependency Walker er et verktøy for å analysere avhengighetene til et Windows-program - som funksjoner, moduler, etc. Det bygger et hierarkisk tre av alle de avhengige modulene i en exe, dll, sys, etc.

Dependency Walker

Dependency Walker kan hjelpe deg med feilsøking av applikasjonsfeil, filregistreringsfeil, brudd på minnetilgang og ugyldige sidefeil.

Dependency Walker blir spesielt nyttig hvis et bestemt program av deg ikke lastes, eller en tjeneste svikter å starte med en feil som peker på en bestemt dll. I slike tilfeller kan du laste dette programmet eller dll i Dependency Walker, for å se hvilken fil som ikke laster inn eller hvilken modul som forårsaker problemet - og deretter fikse det.

Programmet laster ikke bare modulene, men det også skanner for potensielle feil. Ifølge hjelpefilen utfører den følgende jobber:

  • Registrerer manglende filer. Dette er filer som kreves som en avhengighet av en annen modul. Et symptom på dette problemet er "Den dynamiske lenkebiblioteket BAR.DLL ble ikke funnet i den angitte banen …" -feilen.
  • Registrerer ugyldige filer. Dette inkluderer filer som ikke er kompatible med Win32 eller Win64 og filer som er korrupte. Et symptom på dette problemet er at "Programmet eller DLL BAR.EXE ikke er et gyldig Windows-bilde" -feil.
  • Oppdager feil / feil i import / eksport. Verifiserer at alle funksjoner som importeres av en modul, faktisk eksporteres fra de avhengige modulene. Alle uløste importfunksjoner er flagget med en feil. Et symptom på dette problemet er "Prosedyreinngangspunktet FOO kunne ikke være plassert i BARDLL-feilen for dynamisk lenkebibliotek.
  • Detekterer sirkulære avhengighetsfeil. Dette er en svært sjelden feil, men kan oppstå med videresendte funksjoner.
  • Registrerer feilparametere CPU typer moduler. Dette skjer hvis en modul som er bygget for en CPU, forsøker å laste inn en modul som er bygget for en annen CPU.
  • Registrerer kontrollsum uoverensstemmelser ved å verifisere modulens kontrollsummer for å se om moduler har blitt modifisert etter at de ble bygget.
  • Registrerer modulkollisjoner av markerer eventuelle moduler som ikke laster inn på deres foretrukne baseadresse.
  • Registrerer moduleringsinitialiseringsfeil ved å spore samtaler til modulinngangspunkter og lete etter feil.
  • Dependency Walker kan også utføre en kjøretidsprofil for søknaden din for å oppdage dynamisk lastede moduler og modulinitialiseringsfeil. Den samme feilkontrollen fra ovenfor gjelder også dynamisk lastet moduler.

Jeg hjelper for eksempel en klient den andre dagen - hun lastet inn Internet Explorer, men IE holdt krasj uten noen spesifikke feil. Vi hadde gjort det meste av grunnleggende feilsøking som deaktivere tillegg og verktøylinjer, tilbakestille IE til standardinnstilling osv. Men det fortsatte å krasje. Dette innebar at en eller flere filer som kreves for at Internet Explorer skulle kunne kjøre riktig, oppsto et problem. Det er alltid vanskelig å feilsøke slike tilfeller, men med Dependency Walker kan vi se om noe er feil med en avhengig fil.

Så jeg lastet Internet Explorer i Dependency Walker.

Jeg utvidet listen en etter en

Så gikk jeg gjennom hver modul, for å se om jeg kunne finne noe mistenkelig der. Jeg rullet gjennom modulen og var heldig nok til å finne problemet.

Jeg fant ut at filen IEFRAME.dll manglet. Så jeg gikk og erstattet filen fra Windows Installasjons DVD. Det løste problemet. Nå krasjet Internet Explorer ikke lenger.

Jeg håper dette vil fortelle deg hvor lett det er å bruke verktøyet for å finne ut av eventuelle avhengighetsfeil.

Slik bruker du Dependency Walker

For å bruke Dependency Walker til å undersøke feil, kan du følge disse trinnene:

  1. Start Dependency Walker
  2. Klikk Åpne på Fil-menyen for å laste problemfilen
  3. I Vis-menyen, klikk på Start profilering. Dialogboksen Profilmodul vises
  4. Skriv eventuelle brytere, programargumenter, andre alternativer du vil ha, og klikk deretter OK.

Dependency Walker vil injisere dwinject.dll før feilen oppstår, og logger hendelsene som finner sted på tidspunktet for feilen.

Dependency Walker nedlasting

Du kan laste ned Dependency Walker fra her.