新工具介绍:AdPlus UI
通过一段时间,我开发了一款实用新工具,封装了微软的调试利器Adplus.exe让各位更易于使用它。本文是软件说明。
Adplus UI简介
21/03/2012Version 1.0
张佩(Moore.Zhang)
Adplus UI是对Adplus.exe的封装,后者是微软提供的调试工具,是个利器,但虽为利器却少有人用,原因在于它仅支持命令行的方式运作,而命令又稍嫌复杂。Adplus UI的功德就在于把不友好的命令行变成用户友好的界面形式,用户只需要鼠标点几下就可以完成设置,设置会被保存,以后直接使用即可。Adplus UI一定能够为Adplus.exe起到推广作用。
作者本人当然是土生土长的中国人,但这个软件界面是英文的,希望用户不要有什么不好的想法,原因其实很简单,就是我仍在学英文。
关于页面…
关于页面中含有一个report bug按钮,用户在使用过程中如果发现程序bug,可以将问题描述清楚后通过邮件发送给我,让我有机会改进软件的质量。
首次运行的时候,会弹出setting页面。AdPlus.exe在运行的时候有相当多的参数需要设置,这个页面就对应了这些需要设置的参数。
Setting page
用户想运行Adplus UI程序,必须首先在系统中安装Windbg软件,并正确设置Windbg安装目录,这样才能定位到Adplus.exe程序。Adplus UI只是对Adplus.exe的UI封装,并没有实现Adplus.exe的功能。所以必须要指定可运行的Adplus.exe程序路径。另外还需要设置一个专门用来储存dump文件的目录。这两项设置分别对应页面中的Windbg和Output两个按钮。
下面的三个选项分别对:1. 应运行在何种模式,crash模式或hang模式;2. 针对发生第一次和第二次异常的时候,生成何种类型的dump文件。
读者可以参考Windbg安装目录下面的Adplus.doc文件来熟悉这些参数。也可以在控制台中输入Adplus.exe /?来查看可用的参数清单和详细解释。
Main page
完成Setting页面中的设置后,通过工具栏按钮切到Main页面。最上面的编辑框显示的是将要远行的Adplus.exe命令,这时候还不能够点击run按钮运行,因为还没有设置被监控的进程。点击Process按钮选择对哪些程序进行监控。
未选择进程错误
在进程试图中,用户可以选择三种方式对一个进程进行监控或干预。第一种是选择一个或多个已经运行中的进程,在进程列表中任意选择一个或多个进程,选择后运行Adplus.exe,将把调试器挂载到这些进程上进行监控;第二种是启动一个进程,就是Spawn process按钮所实现的功能。点击这个按钮,用户可以指定一个可执行的exe程序。用户也可以通过编辑框手动输入或编辑。第三种方式以监控方式进行,在底部编辑框中输入特征字符串,比如notepad.exe,调试器会监控将来运行的所有进程,如果进程名与notepad.exe相符,则会把调试器挂载到它上面进行监控。
这三种方式的进程监控方式可以混合使用。关闭进程页面退出,我们能看到Main页面中的命令信息有了变化。
选择进程
更新后的命令包含对进程3980的监控
此时点击Run按钮启动Adplus.exe程序并执行命令。在信息框中会打印出Adplus.exe执行命令的结果,如下图所示。一般情况下,只要设置正确就能够得到正确的执行结果。但并不能确保不出现错误的可能性。用户可以通过阅读执行结果来判断执行的情况。
如果Adplus.exe程序执行成功,会起一个控制台界面,在这个界面里运行的是cdb.exe调试器程序,如下图所示。如果看到cdb.exe控制台界面,也就可以知道Adplus.exe正确执行无误了。
在控制台中运行的调试程序
信息框中打印出Adplus.exe的执行结果
一旦确定程序已经正确运行,就可以通过点击工具栏上的Open Dump按钮打开dump目录。程序能够非常智能地解析Adplus.exe的输出信息并获取dump目录的地址。下图是一个典型的dump目录。在这个目录里面,有三个log文件,以及若干个dump文件。三个log文件是随着监控的建立而产生的,而dump文件则是在发生异常或者hang/crash的时候才会产生。
一旦取得dump文件,调试高手们就可以打开windbg并按下CTL+D一展身手了。
Dump目录内容