Dependency Walker - Kaip naudotis - Tutorial

Turinys:

Dependency Walker - Kaip naudotis - Tutorial
Dependency Walker - Kaip naudotis - Tutorial
Anonim

Kartais įprastos trikčių šalinimo veiksmai tiesiog nesudarys. Mums gali tekti eiti aukščiau ir toliau - daugiau kaip teismo ekspertizė. Šiandien aš parašysiu apie įrankį, kuris mums padės tai padaryti. Priklausomybė Walker yra įrankis, kuris analizuoja "Windows" programos priklausomybes, pvz., funkcijas, modulius ir tt. Ji sukuria visų nepriklausomų modulių exe, dll, sys ir tt hierarchinį medį.

Priklausomybė Walker

"Dependency Walker" gali padėti jums pašalinti programų klaidas, failų registravimo klaidas, atminties prieigos pažeidimus ir neteisingus puslapio gedimus.

Priklausomybė "Walker" tampa itin naudinga, jei jūsų konkreti programa nekelia, arba paslauga nesugeba pradėti klaida, nukreipta į konkretų DLL. Tokiais atvejais galite įkelti šią programą ar dll į "Dependency Walker", kad pamatytumėte, kokia failo nepavyksta įkelti, ar kokį modulį sukelia problema, ir pataisykite.
Priklausomybė "Walker" tampa itin naudinga, jei jūsų konkreti programa nekelia, arba paslauga nesugeba pradėti klaida, nukreipta į konkretų DLL. Tokiais atvejais galite įkelti šią programą ar dll į "Dependency Walker", kad pamatytumėte, kokia failo nepavyksta įkelti, ar kokį modulį sukelia problema, ir pataisykite.

Programa ne tik įkelia modulius, bet ir nuskaito galimas klaidas. Pagal Pagalbos failą jis atlieka šias užduotis:

  • Aptinka trūkstamus failus. Tai yra failai, reikalingi kaip priklausomybė nuo kito modulio. Šios problemos simptomas yra "Dinaminės nuorodos biblioteka BAR.DLL negalėjo rasti nurodytame kelyje …" klaida.
  • Aptinka netinkamus failus. Tai apima failus, kurie nėra suderinami su Win32 arba Win64, ir sugadintus failus. Šios problemos požymis yra "Programos ar DLL failo BAR.EXE nėra galiojantis Windows vaizdas" klaida.
  • Aptinka importo / eksporto neatitikimus. Patikrina, ar visos modulio importuotos funkcijos iš tikrųjų eksportuojamos iš priklausomų modulių. Visos neišspręstos importo funkcijos pažymėtos klaida. Šios problemos požymis yra "Procedūros įėjimo taškas FOO negalėjo būti dinaminės nuorodos bibliotekoje BAR.DLL" klaida.
  • Aptinka apykaitinę priklausomybės klaidą. Tai yra labai reta problema, bet gali atsirasti naudojant perduotas funkcijas.
  • Aptinka neatitinkančius modulių CPU tipus. Tai įvyksta, jei vieno CPU modulis bando įkelti modulį, pastatytą kitam procesoriui.
  • Nustato kontrolinės sumos neatitikimus, tikrinant modulių kontrolines sumas, kad įsitikintumėte, ar moduliai buvo modifikuoti po jų sukūrimo.
  • Aptinka modulių susidūrimus, pabrėžiant bet kokius modulius, kurių nepavyko įkelti, jų pageidaujamo pagrindinio adreso.
  • Aptinka modulio iniciacijos paklaidas, stebi skambučius į modulio įėjimo taškus ir ieško klaidų.
  • "Dependency Walker" taip pat gali atlikti jūsų programos vykdymo profilį, norėdami aptikti dinamiškai įkeltus modulius ir modulių iniciacijos sutrikimus. Tas pats klaidų tikrinimas iš aukščiau taip pat taikomas dinamiškai įkrauntiems moduliams.

Pavyzdžiui, kitą dieną aš padėjau klientui - ji pakrovė "Internet Explorer", tačiau "IE" vis tiek sulūžo be jokių konkrečių klaidų. Mes padarėme daugelį pagrindinių trikčių, pvz., Išjungiamų papildinių ir įrankių juostų, iš naujo nustatome IE numatytąjį nustatymą ir tt Vis dėlto jis vis tiek sulūžo. Tai reiškė, kad vienas ar daugiau failų, reikalingų tinkamai paleisti "Internet Explorer", sukėlė problemą. Visada sunku pašalinti tokius atvejus, bet su Dependency Walker, mes galime pamatyti, ar kažkas negerai su vienu iš priklausomų failų.

Taigi įkėliau "Internet Explorer" "Dependency Walker".

Tada aš išplėtė sąrašą po vieną
Tada aš išplėtė sąrašą po vieną
Tada aš eidavo per kiekvieną modulį, norėdamas pamatyti, ar galėčiau rasti kažką įtartino. Aš aplankiau modulį ir pasisekėu rasti problemą.
Tada aš eidavo per kiekvieną modulį, norėdamas pamatyti, ar galėčiau rasti kažką įtartino. Aš aplankiau modulį ir pasisekėu rasti problemą.
Nustatyta, kad trūksta failo IEFRAME.dll. Taigi aš nuėjau ir pakeičiau failą iš "Windows" diegimo DVD. Tai išsprendė problemą. Dabar "Internet Explorer" neveikia.
Nustatyta, kad trūksta failo IEFRAME.dll. Taigi aš nuėjau ir pakeičiau failą iš "Windows" diegimo DVD. Tai išsprendė problemą. Dabar "Internet Explorer" neveikia.

Tikiuosi, kad tai parodys jums, kaip paprasta naudoti įrankį, kad išsiaiškintumėte galimas priklausomybės klaidas.

Kaip naudotis "Dependency Walker"

Jei norite ištirti klaidas, naudokite "Dependency Walker", galite atlikti šiuos veiksmus:

  1. Pradėti priklausomybę Walker
  2. Spustelėkite "Atidaryti" meniu Failas, kad įkeltumėte problemos failą
  3. Meniu Rodinys spustelėkite Pradėti profiliavimą. Atsiras dialogo langas profilio modulio
  4. Įveskite bet kuriuos jungiklius, programos argumentus, kitas norimas pasirinktis ir spustelėkite Gerai.

Priklausomai nuo "Walker", iki klaidos įvyks dwinject.dll, ir užregistruos klaidos metu vykstančius įvykius.

Atsisiųsti Walker atsisiųsti

Galite atsisiųsti Dependency Walker iš čia.

Rekomenduojamas: