Classic Win32/64 module dependency profiler for portable executables. Dependency Walker Dependency Analyzer maps every DLL import and export, flags missing modules, and visualizes the load-time dependency chain in a hierarchical tree.
Dependency Walker Dependency Analyzer (depends.exe) has been the standard tool for diagnosing DLL-load failures on Windows for over two decades. It parses the import tables of any EXE or DLL and recursively resolves every dependent module, building a tree that shows what each binary expects to load at runtime. Missing modules, circular dependency chains, and mismatched CPU architectures are highlighted so you can pinpoint why an application fails to start with side-by-side configuration or missing DLL errors.
Beyond static analysis, Dependency Walker can profile a running application to capture dynamic-load events from LoadLibrary and delay-load imports. The profiling mode logs every module load, function entry address, and error code in real time, producing a call-sequence trace for debugging complex startup failures. The Export View for any module lists every exported function by ordinal and name, helping developers verify that a DLL exposes the API surface the consuming application expects.
| Function | Description |
|---|---|
| Static Dependency Tree | Parse import tables and resolve all static dependencies recursively |
| Missing Module Detection | Highlight DLLs that cannot be found on the search path in red |
| Architecture Mismatch | Flag attempts to load x86 DLLs into an x64 process and vice versa |
| Circular Dependency Check | Detect and warn about AβBβA dependency loops |
| Runtime Profiling | Instrument a process and capture all dynamic LoadLibrary calls |
| Export View | Display every exported function with ordinal and optional name |
| Module Properties | Show file version, timestamp, checksum, subsystem, and entry point for each module |
| Error Logging | Collect all load-time errors, unresolved imports, and missing functions in a flat report |
- Download depends22_x64.zip (or the x86 version) and extract depends.exe.
- Launch Dependency Walker and drag a misbehaving EXE or DLL onto the window.
- Review the upper-left tree for red modules β these are missing from the DLL search path.
- Click a module to see its imported and exported functions in the right-hand panes.
- Use View > Full Paths to see exactly where each resolved module was loaded from.
When an application throws a The application was unable to start correctly (0xc000007b) error, open its EXE in Dependency Walker. Any red module is the likely cause. Check whether a 32-bit DLL is being pulled into a 64-bit process or whether a required Visual C++ runtime is missing from the target machine. Use the profiling mode to confirm that dynamically loaded plugins resolve correctly.
A. Deployment Validation β Before packaging an application for deployment, run Dependency Walker on the main EXE and each plugin DLL. Verify zero red entries in the dependency tree for the target OS environment.
B. Side-by-Side Debugging β An application fails only on clean Windows installs. Dependency Walker reveals it requires a specific version of MSVCR90.DLL. Add the matching Visual C++ 2008 redistributable to the installer.
C. Plugin Architecture Audit β A modular application loads third-party plugins via LoadLibrary. Profile the app with Dependency Walker to confirm which plugins actually load and whether any fail silently at runtime.
D. Import-Hook Investigation β A security audit reveals unexpected DLLs in a vendor application. Open the binary in Dependency Walker to see its full static import table and identify whether the extra modules are load-time dependencies or injected.
- OS: Windows 7 or newer (x86 and x64 builds available separately)
- RAM: 32 MB
- Storage: 5 MB for the executable
- Additional: Run the x64 build when analyzing 64-bit binaries; use the x86 version for 32-bit targets
- Dependency Walker shows false missing DLLs on Windows 8+ β API sets and WinSxS redirections confuse the static parser. API-MS-WIN-* modules are normal; they resolve at runtime through the Windows loader's API-set schema.
- Profiling mode causes the target app to crash β some applications are sensitive to the profiling injection method. Start profiling from the command line with full logging to capture the crash context.
- Circular dependency warning won't disappear β some legitimate frameworks (e.g., COM DLLs) have intentional circular references. These warnings are informational for known patterns; triage unknown ones.
- Export view is empty for a known DLL β the module may export only by ordinal, not by name. Switch the right pane to show ordinals, or check if the DLL uses a .def file with noname attributes.
- Module shows as Unknown instead of a file path β the DLL does not exist in any directory on the search path. Add the missing module's directory to the PATH environment variable and refresh the dependency tree.
Dependency Walker download, depends.exe, Dependency Walker x64, Dependency Walker vs Dependencies, Dependency Walker profiling, DLL dependency analyzer, missing DLL debugger, Windows side-by-side errors, Dependency Walker tutorial, Dependency Walker error 0xc000007b, Dependency Walker API set, Dependency Walker LoadLibrary trace, DLL import viewer, module dependency resolver, Dependency Walker Visual C++ runtime, Dependency Walker circular dependency, Dependency Walker export viewer, portable executable analyzer, Dependency Walker offline, Dependency Walker Windows 11, Dependency Walker command line