要使用 ADPlus,您必须为脚本指定一系列命令行开关或参数。ADPlus 至少需要两个开关:一个开关指定操作模式,另一个开关指定要对其执行操作的目标进程。

下面列出了最常用的开关。您还可以通过运行“ADPlus –help”,或通过阅读调试程序帮助文件 (Debugger.chm) 来查看完整的开关列表。

  • -hang
    此开关将 ADPlus 配置为在挂起模式下运行。您必须将此开关与“-iis”、“-pn”或“-p”开关一起使用。不能将“-hang”与“-crash”开关一起使用。

    注意:当 ADPlus 在挂起模式下运行时,您必须在进程停止响应或占用很高的 CPU 使用率之后启动 ADPlus。

  • -crash
    此开关将 ADPlus 配置为在崩溃模式下运行。您必须将此开关与“-iis”、“-pn”或“-p”开关一起使用。不能将“-crash”与“-hang”开关一起使用。

    注意:当 ADPlus 在崩溃模式下运行时,您必须在进程意外退出或者变得不稳定之前启动 ADPlus。

  • -pn process name
    “-pn”开关用于指定您希望 ADPlus 分析的进程名。要指定多个进程,请使用多个“-pn process name”开关。例如:

    -pn process1.exe -pn process2.exe
  • -p process ID
    “-p”开关用于指定您希望 ADPlus 分析的进程的 ID (PID)。要指定多个进程,请使用多个“-p PID”开关。例如:

    -p 1896 -p 1702
  • -iis
    “-iis”开关用于调试运行 Internet Information Server (IIS) 4.0 或更高版本的服务器计算机。在将 ADPlus 与“-iis”开关一起使用时,ADPlus 监视所有 IIS 进程内 (Inetinfo.exe) 和进程外 (Mtx.exe/Dllhost.exe) 应用程序。“-iis”开关可以与“-pn”开关或“-p”开关一起使用,也可以单独使用,以分析 IIS 和所有在崩溃模式或挂起模式下运行的 MTS/COM+ 应用程序。

    如果您尝试分析运行 IIS 3.0 或更低版本的服务器计算机,请使用“-pn”开关并将 Inetinfo.exe 指定为要监视的进程。

  • -notify computer nameuser name
    只有当 ADPlus 在崩溃模式下运行时此开关才有效。此开关指示 ADPlus 提醒指定的用户名或计算机名发生了崩溃。当调试程序由于第二次偶然发生的异常从进程分离时,或者当用户按 Ctrl+C 停止调试时,就会通过本地信使服务向远程用户或计算机发送通知。只有正在被调试的计算机上启动了本地信使服务时,才会发送此通知。
  • -quiet
    此开关指示 ADPlus 不显示所有模式对话框。如果您正在从远程命令外壳程序(其中模式对话框可能导致 ADPlus 无限期地等待用户单击“确定”)内运行 ADPlus,则此开关将非常有用。为保证获得最佳效果,请确保这是传递给 ADPlus.vbs 的第一个开关。
  • -o output directory
    此开关指示 ADPlus 在哪里放置调试输出文件。如果使用长文件名,则必须用双引号将它们括起来。此外,还可以使用 UNC 路径 (//server/share)。如果使用 UNC 路径,则 ADPlus 在紧跟您指定的 UNC 路径的下方创建一个新文件夹。根据正在运行 ADPlus 的服务器命名该文件夹(例如,//server/share/Web1 或 //server/share/Web2)。如果 ADPlus 在 Web 场中的多台计算机上(这些计算机全都将其输出放置于同一网络共享上)运行,则此开关十分有用。

进程停止响应或占用 100% 的 CPU 使用率

在此情况下,进程可能会在一段持续时间内或无限地随机占用 100% 的 CPU。您应在挂起模式下运行 ADPlus,以获取发生问题占用 CPU 的进程的内存转储。例如,可使用以下命令语法之一:

ADPlus -hang -p 1896
此命令在挂起模式下运行 ADPlus,并生成 PID 为 1896 的进程的完全内存转储文件。

ADPlus -hang -pn myapp.exe
此命令在挂起模式下运行 ADPlus,并生成名为 Myapp.exe 的所有进程的完全内存转储文件。

ADPlus -hang -iis -pn myapp.exe -o c:/temp
此命令在挂起模式下运行 ADPlus,并生成 IIS、Mtx.exe 或 Dllhost.exe 的所有实例及名为 Myapp.exe 的所有进程的完全内存转储文件。然后它将这些内存转储文件放在 C:/Temp 文件夹中。

如果在 CPU 被 100% 占用的情况下在挂起模式下运行 ADPlus,该工具将生成您在命令行中指定的进程的内存转储文件。

注意:在某些极少数情况下,调试程序可能无法在 100% 的 CPU 占用条件下或在发生挂起之后连接到进程。如果您在发生问题之后在挂起模式下运行 ADPlus,则该工具可能无法生成内存转储文件。在这些情况下,最好在出现问题之前连接到调试程序。为此,请使用下列命令语法之一在崩溃模式下运行 ADPlus:

ADPlus -crash -p 1896
此命令在崩溃模式下为 PID 为 1896 的进程运行 ADPlus。ADPlus 将等待异常发生或等待用户在最小化的调试程序窗口中按 Ctrl+C,以生成内存转储文件并分离调试程序。

ADPlus -crash -pn myapp.exe
此命令在崩溃模式下为名为 Myapp.exe 的进程运行 ADPlus。ADPlus 将等待异常发生或等待用户在最小化的调试程序窗口中按 Ctrl+C,以生成内存转储文件并分离调试程序。

ADPlus -crash -iis -pn myapp.exe -o c:/temp
此命令在崩溃模式下为名为 Myapp.exe 和 Inetinfo.exe 进程的所有实例及 Mtx.exe 或 Dllhost.exe 的所有实例运行 ADPlus。ADPlus 将等待异常发生或等待用户在一个或多个最小化的调试程序窗口中按 Ctrl+C,以生成内存转储文件并分离调试程序。接下来,ADPlus 将内存转储文件和日志文件放在 C:/Temp 文件夹中。

然后,在进程挂起或占用 100% CPU 使用率,用户可以在 ADPlus 生成的最小化的调试程序窗口中按 Ctrl+C,以便调试程序可以为进程生成内存转储文件。

注意:默认情况下,ADPlus 只有在用户按 Ctrl+C 时才生成小内存转储记录。此设置可节省磁盘空间。在这种情况下,配置 ADPlus 以在用户按 Ctrl+C 时生成完全内存转储文件可能是非常有用的。为此,请使用“–CTCF”开关。此外,为 CPU 使用率接近 100% 以及已达到 100% 的这一阶段捕获性能日志文件或系统监视器日志文件通常非常有帮助。至少,此日志文件应在 1 到 5 秒的间隔捕获以下对象:

  • 内存
  • 进程
  • 处理器
  • 系统
  • 线程

进程意外退出

在这种情况下,进程可能会随机意外退出(或崩溃)。您应在崩溃模式下运行 ADPlus,以便在发生问题获取退出的进程的内存转储文件。例如,可使用以下命令语法之一:

ADPlus -crash -iis
此命令在崩溃模式下运行 ADPlus,并使该工具将 CDB 调试程序连接到正在计算机上运行的 Inetinfo.exe 和所有 Mtx.exe 或 Dllhost.exe 进程。然后,ADPlus 将等待任何第一次偶然异常和第二次偶然异常发生。因为省略“-o”开关,所以默认情况下 ADPlus 将所有文件都放在安装文件夹的子文件夹中。

ADPlus -quiet -crash -iis -notify remote computer -o c:/temp
此命令在崩溃模式下以安静方式运行 ADPlus(不弹出任何对话框,并且将所有输出全部记录到事件日志中),并使该工具将 CDB 调试程序连接到正在计算机上运行的 Inetinfo.exe 和所有 Mtx.exe 或 Dllhost.exe 进程。因为使用了“-notify”开关,所以只要检测到崩溃或者所监视的进程退出,调试程序就会向登录到名为 remote computer 的计算机上的所有用户发出通知。因为使用了“-o”开关,所以 ADPlus 将所有输出都放在 C:/Temp 文件夹中。如果该文件夹不存在,ADPlus 会创建它。

ADPlus -crash -iis -o //server/share
此命令与前面的命令大致相同,只有一个例外,即它将所有输出都记录到网络服务器中。ADPlus 在 //server/share 中创建一个新子文件夹,并根据本地计算机命名该子文件夹。因此,如果您正在 Web 场中运行 ADPlus,则该场中正在运行 ADPlus 的每一个服务器都在 //server/share 下记录自己的唯一文件夹。(您不必为每一个服务器创建唯一文件夹。ADPlus 将自动执行此操作。)

有些需要进行自动化测试的时候,可以在开始里面添加下面这个批处理。
@echo off
echo Wscript.Sleep Wscript.Arguments(0) * 1000>Delay.vbs
Delay.vbs 1
"要监视的进程路径"
Delay.vbs 1
"C:/Program Files/Debugging Tools for Windows (x86)/adplus.vbs" -quiet -crash -pn 要监视的进程名
del Delay.vbs
echo ok!
pause

ADPlus 命令行开关相关推荐

  1. getopt java_使用 Getopt::Std 的命令行开关

    用传统的 Unix 方式创建的简单用户界面 Unix 用户非常熟悉基于文本的 UI 模型.设想有一个 Perl 程序,让我们先看一下这个模型用于该程序的简单实现.标准的 Getopt::Std 模块简 ...

  2. Chromium命令行开关列表1

    Chromium命令行开关列表 Google Chrome浏览器可以使用很多命令行. 一些更改功能的行为,其他用于调试或试验. 该页面列出了可用的开关,包括其条件和说明. 上一次自动更新发生在2020 ...

  3. Chromium命令行开关列表2

    Chromium命令行开关列表 Google Chrome浏览器可以使用很多命令行. 一些更改功能的行为,其他用于调试或试验. 该页面列出了可用的开关,包括其条件和说明. 上一次自动更新发生在2020 ...

  4. Devenv 命令行开关

    此文章转载自Visual Studio官网,自己留档保存 Devenv 命令行开关 借助 Devenv,可以设置关于 IDE.生成项目.调试项目和使用命令行部署项目的各种选项. 使用这些开关,可以通过 ...

  5. PowerPoint 2007 与 PowerPoint Viewer 2007 的命令行开关

    本文为您展示了如何添加开关与参数来自定义 Microsoft Office PowerPoint 2007 与 Microsoft Office PowerPoint Viewer 2007 的启动方 ...

  6. linux命令行设置编码,编码样式-Linux命令行开关和参数是否有标准?

    -一种 全部(不带参数). 如果有GNU风格的--all选项,那么-a只能是同义词,这将是非常令人惊讶的. 示例:fuser(1),fetchmail(1). 如tar(1)中所示追加. 通常将它与- ...

  7. 命令行收集(DOS/Linux/nc/xscan/xsniffer)

    #1 一: net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" ...

  8. 如何使用命令行清除NuGet包缓存?

    本文翻译自:How to clear NuGet package cache using command line? I can clear my dev computer's NuGet packa ...

  9. .NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]...

    较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参 ...

最新文章

  1. php操作redis_PHP操作redis的两种方式
  2. 数据库三范式的理解(引用其他网友)
  3. 4.4 机器学习系统设计--垃圾邮件分类-机器学习笔记-斯坦福吴恩达教授
  4. OPCDAAuto.dll的C#使用方法浅析(转载)
  5. Matlab | Matlab从入门到放弃(5)——矩阵与format
  6. python 查看当前目录_「Python」打包分发工具setuptools学习
  7. 太原师范学院计算机二级报名,山西计算机等级考试报名地点
  8. 【转】Path.Combine (合并两个路径字符串)方法的一些使用细节
  9. mysql查询选课最少成绩最高_MySQL 练习
  10. 飞鸽传书2007绿色版 唯一官方下载地址
  11. 交叉表组件(改造 适用多个子标题)
  12. Pytest之fixture
  13. Android IPC数据在内核空间中的发送过程分析
  14. CentOS下GitLab的安装部署
  15. Java基础篇:文件如何读写?
  16. 用pycharm+flask 建立项目以后运行出现ImportError: No module named flask-login问题
  17. sbt oracle,Oracle10gR2 ORA-19554的SBT_TAPE
  18. 注册表修改系统分辨率
  19. 2021 OpenCV人工智能竞赛优秀项目团队介绍集锦(五)
  20. 计算机进制转换列表,计算机进制转换汇总

热门文章

  1. 嵌入式软件测试数据输入和获取的方法
  2. X-Window System入门
  3. 霸州市津郎计算机学校,2018-2019年廊坊市霸州市津东小学一年级上册语文模拟月考无答案.doc...
  4. html5 css3自适应,网页自适应过程详解-HTML5+CSS3
  5. Asp.net学习常见链接
  6. 好父母胜过好老师大全集-第二卷
  7. 炉石传说服务器维护有补偿吗,炉石传说维护(炉石传说维护公告全文及具体补偿方案 炉石数据回档怎么补偿?)...
  8. 失去中国市场的三星继续称霸全球,中国手机的份额反而进一步下降了
  9. 利用qwebchannel实现Python和JS之间进行通信
  10. java代码美化json格式