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:
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. |
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. |
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. |
Detects circular dependency errors. This is a very rare error, but can occur with forwarded functions. |
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. |
Detects checksum inconsistencies by verifying module checksums to see if any modules have been modified after they were built. |
Detects module collisions by highlighting any modules that fail to load at their preferred base address. |
Detects module initialization failures by tracking calls to module entrypoints and looking for errors. |
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. |