Analyzing Dependencies with Dependency Walker
Tartalomjegyzék:
Néha a szokásos hibaelhárítási lépések egyszerűen nem fogják csökkenteni. Lehet, hogy felül kell járnunk, mint például a törvényszéki hibaelhárítás. Ma írok egy olyan eszközt, amely segít nekünk ebben. Dependency Walker egy olyan eszköz, amely elemzi a Windows alkalmazások függőségét - például függvényeket, modulokat stb. Egy exe, dll, sys, stb. Összes függő moduljának hierarchikus fázisa.
Függőség Walker
Dependency Walker segítséget nyújt az alkalmazáshibák, a fájlbeírás hibái, a memória hozzáférés megsértése és az érvénytelen oldalhibák hibaelhárításában.
A függőségi Walker különösen akkor hasznos, ha egy adott program nem töltődik be, vagy egy szolgáltatás nem működik hogy egy adott dll-re mutató hibával kezdje. Ilyen esetekben betöltheti azt a programot vagy a dll-et a függőségi sétálóban, hogy megnézze, melyik fájl nem töltődik be, vagy milyen modul okozza a problémát -, majd javítsa ki.
A program nem csak betölti a modulokat, hanem beolvassa a potenciális hibákat. A Súgó fájl szerint a következő feladatokat végzi el:
- A hiányzó fájlok észlelése. Ezek olyan fájlok, amelyek egy másik modultól való függéshez szükségesek. Ennek a problémának a tünete a "A dinamikus hivatkozási könyvtár BAR.DLL nem található a megadott útvonalon …" hiba.
- Érvénytelen fájlok észlelése. Ez magában foglalja azokat a fájlokat, amelyek nem Win32 vagy Win64 kompatibilisek, és a fájlok sérültek. A probléma tünete az "Az alkalmazás vagy a DLL BAR.EXE nem érvényes Windows-kép" hiba.
- Az import / export eltérések észlelése. Ellenőrzi, hogy a modul által importált összes funkciót ténylegesen exportálják-e a függő modulokból. Minden megoldatlan importfunkció hibát jelez. Ennek a problémának a tünete az, hogy "A FOO folyamatbeviteli pont nem található a dinamikus link könyvtárban BAR.DLL" hiba.
- Körfüggő hibák észlelése. Ez egy nagyon ritka hiba, de előfordulhat az átirányított funkciók esetén is.
- Érzékeli a modulok nem megfelelő moduljait. Ez akkor fordul elő, ha egy CPU-ra épített modul megpróbál betölteni egy másik CPU-ra épített modult.
- Ellenőrzi az ellenőrzőösszetevőknek a modul ellenőrző összegek ellenőrzésével történő ellenőrzését, hogy megnézze, hogy a modulok módosítása után módosult-e.
- kiemelve azokat a modulokat, amelyek nem töltik be a kívánt alapcímüket
- A modul inicializálási hibáinak felderítése a modulbeillesztési pontokra irányuló hívások követésével és hibák keresése
- Függőség A Walker elvégezheti az alkalmazás futási idejét is, a dinamikusan betöltött modulok és a modul inicializálási hibái. Ugyanaz a fenti hibaellenőrzés a dinamikusan betöltött modulokra is vonatkozik.
Például egy másik napot segítettek az ügyfeleknek - betöltötte az Internet Explorert, de az IE továbbra is összeomlott, anélkül, hogy konkrét hiba lenne. A legtöbb alapvető hibaelhárítást elvégeztük, például letiltotta a kiegészítőket és az eszköztárakat, visszaállította az IE-t az alapértelmezett beállításokra, stb. Azonban továbbra is összeomlott. Ez azt jelentette, hogy egy vagy több fájl szükséges ahhoz, hogy az Internet Explorer megfelelően működjön, ami problémát okozott. Ezeket az eseteket mindig nehéz elhárítani, de a Dependency Walkerrel, láthatjuk, hogy valami hibás-e az egyik függő fájllal.
Tehát betöltöttem az Internet Explorert a Dependency Walker-ből.
A következő, egyenként kibővítettem a listát
Aztán átmentem az egyes modulokon, hogy lássam, találok valami gyanúsat. Átnéztem a modult, és elég szerencsés volt megtalálni a problémát.
Megállapítottam, hogy az IEFRAME.dll fájl hiányzott. Szóval mentem és cseréltem le a fájlt a Windows telepítő DVD-ről. Ez megoldotta a problémát. Most már az Internet Explorer már nem ütközött össze.
Remélem ez megmondja, milyen egyszerű az eszköz használatával, hogy megtudja a függőségi hibákat.
A Dependency Walker használata
A Dependency Walker használatához kövesse az alábbi lépéseket:
- Függőségi Walker indítása
- Kattintson a Fájl menü Megnyitás parancsára a
- kattintson a Profil elkezdése gombra.
- Írja be a kapcsolókat, a program argumentumokat, a többi kívánt opciót, majd kattintson az OK gombra.
Függőség A Walker beadja a dwinject.dll-et a hiba előfordulása előtt, és naplózza az eseményeket a a hiba
Dependency Walker letöltés
Letöltheti Dependency Walker itt.