Using Dependency Walker for Troubleshooting Modules


Dependency Walker recursively scans all dependent modules required by a particular application. During this scan it performs the following tasks:

bullet Detects missing files. These are files that are required as a dependency to another module. A symptom of this problem is the "The dynamic link library BAR.DLL could not be found in the specified path..." error.

bullet Detects invalid Files. This includes files that are not Win32 or Win64 compliant and files that are corrupt. A symptom of this problem is the "The application or DLL BAR.EXE is not a valid Windows image" error.

bullet Detects import/export mismatches. Verifies that all functions imported by a module are actually exported from the dependent modules. All unresolved import functions are flagged with an error. A symptom of this problem is the "The procedure entry point FOO could not be located in the dynamic link library BAR.DLL" error.

bullet Detects circular dependency errors. This is a very rare error, but can occur with forwarded functions.

bullet Detects mismatched CPU types of modules. This occurs if a module built for one CPU tries to load a module built for a different CPU.

bullet Detects checksum inconsistencies by verifying module checksums to see if any modules have been modified after they were built.

bullet Detects module collisions by highlighting any modules that fail to load at their preferred base address.

bullet Detects module initialization failures by tracking calls to module entrypoints and looking for errors.

bullet Dependency Walker can also perform a run-time profile of your application to detect dynamically loaded modules and module initialization failures. The same error checking from above applies to dynamically loaded modules as well.