众所周知:windows的很多应用程序都是不但有可执行的exe文件,而且还需要有辅助模块,这些模块形形色色,品类颇杂,其中名声最大的就数动态连接库(dll)了,另外还有:ocx、sys等等.像应用程序可以分成16位、32位、64位程序一样,模块也分为16位、32位、和64位模块.因删除应用程序或可执行文件时,相关的动态链结库或模块往往不能删除干净,时间一长,形成许多使人生厌的"垃圾文件".所以,通常很多使用windows的人对dll文件的关心都集中在研究哪些是有用的,哪些是无用的,以期准确地删除无用部分,即完成所谓的系统减肥,不过,这不是本次讨论的中心,我们的目的是从另一个方面研究模块文件,下面提到的,就是一个这样的工具.
a.简介
windows2000专业版的support tools中有一个专门分析模块文件的工具,其英文名字是:dependency walker,直译是"从属漫步者",这个名字无论如何都透着别扭,不符合中文表达的特点.通过使用验证和查看参考资料,把它进行引申,翻译为"模块解析工具"较为合适些.与上述为系统减肥的目的不同,模块解析工具可以探测出:模块的从属关系、建立者、功能接口、调用关系、甚至生成模块文件所使用的编程语言、程序链结时用的链结器版本等等信息,解析出的从属关系是用一个类似目录树的图标格式显示出来的.当然还能显示运行模块至少需要使用哪些关联文件,连同文件的完整路径、基本地址、版本号、计算机类型、debug信息以及其它等等信息,可谓是方方面面、应有尽有.
从这些信息的性质不难看出,对系统管理员、系统测试者、编程人员、自动安装脚本编写人员来说,这类信息用处大些.对普通的使用者,用处小些.但也非无可所用.普通使用者可以用这些解析结果来排除由于模块引起的系统故障,模块导致的系统故障主要包括:
1.模块丢失.
2.无效模块.
3.执行的出口/入口搭配错误.
4.循环错误.
5.模块与计算机类型的搭配错误.
尽管该工具是win2k的支持工具,但也能运行在win9x、winnt3.51、winnt4.0的操作系统环境中,甚至还包括windows ce.目前dependency walker的最新版本是2.0.该版本只支持解析32位或64位模块,已经不支持16位模块了.
b.用法略谈
与其它工具不同,这个工具只有gui界面的版本而没有命令行版本.如果你已经安装了support tools,可以这样打开:"开始->程序->support tools->tools->dependency walker ".这也是一个英文界面的工具,并有英文帮助文件供参考.下面简单介绍一下使用方法:
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器