Dependency Walker is a utility that scans any 32-bit or 64-bit Mach-O executables (executable, so, dylib or kext) of any architectures (i386, x86_64, ppc, ppc64, arm and arm64) and builds a hierarchical tree diagram of all dependent modules. For each module found, it lists all the functions that are exported by that module, and which of those functions are actually being called by other modules.
Dependency Walker is also very useful for troubleshooting system errors related to loading and executing modules. Dependency Walker detects many common application problems such as missing modules, invalid modules, import/export mismatches, circular dependency errors, mismatched machine types of modules, and module initialization failures.
Dependency Walker handles all types of module dependencies, including binding, lazy, weak, forwarded, and redirected symbols and automatically demangles them to the standard signatures if possible.
Note:
• Due to the complication of the mechanism of symbol loading, if a symbol is marked red, it still could be resolved by symbol-redirection system. This happens in several system frameworks, such as CoreFoundation, Quartz, etc.
• For non-native executables, for example, iOS executables, there will be a lot of missing symbols. This is the expected result: these symbol only exists in system of the target architecture.
* Fixed: wrong report of missing symbols in libobjc, libSystem and other system libraries.