2009-08-12 51 views
1

我有一个winxp进程,它有各种dll和静态库。我们的一个libs调用了ms debug dll,我怀疑它是哪一个,但想用Process Explorer等工具证明它。我怎样才能得到我的流程树,看看究竟是谁在加载哪些模块?找到为什么加载DLL

回答

7

您可以使用工具,如Dependency Walker

+0

看起来很酷,我必须尝试一下。它发生在.libs上吗? – 2009-08-12 19:37:42

+0

老实说,我还没试过,所以我不确定。 – RiddlerDev 2009-08-12 20:13:58

+0

这是我使用的lib查看器http://www.codeproject.com/KB/debug/LibView.aspx – iain 2009-08-12 21:07:33

5

两个工具,与微软的Visual Studio的船:

Depends.exe您的.EXE文件和.DLL文件会告诉你加载时的依赖关系是什么。

在.lib文件上运行dumpbin /directives以告诉您静态库传递给链接器的链接器指令。这将显示来自那里的依赖关系。 这与Windows SDK“PSDK”一起提供,也可用于获取加载时间缩短。

如果事情在运行时得到加载,请在k ernel32!LoadLibrary上设置断点,并在触发时检查调用堆栈。 WinDbg调试器(适用于Windows的MS调试工具)适用于此。