DPlus是如何工作的?

================

ADPlus 具有两种操作模式:

  • “Hang”模式用于解决进程挂起、100% CPU 使用率以及不涉及崩溃的其他问题。当您在挂起模式下使用 ADPlus 时,在运行脚本之前必须等待,直到进程停止响应(与崩溃模式不同,挂起模式不是持久性的)。
  • “Crash”模式用于解决 Dr. Watson 错误导致的崩溃问题,或者用于解决导致程序或服务意外退出的任何其他类型的错误。当您在崩溃模式下使用 ADPlus 时,必须在发生崩溃前启动 ADPlus。可以通过“-notify”开关对 ADPlus 进行配置,以便通知管理员或计算机发生了崩溃。

Hang模式

在此模式下,ADPlus 在脚本结束运行后立即为在命令行中指定的所有进程生成完全内存转储。创建的每一个 .dmp 文件都会放在包含运行 ADPlus 时的日期/时间戳的文件夹中。每一个文件名都包含进程名、进程 ID,以及运行 ADPlus 时的日期/时间戳。在进程内存正被转储到某一文件时,该进程被冻结。在创建完内存转储文件之后,通过将非侵害性连接/分离与 CDB 调试程序一起使用来恢复进程。

Crash模式

在此模式下,ADPlus 将 CDB 调试程序连接到在命令行中指定的所有进程。ADPlus 自动配置调试程序以监视下列类型的异常:

  • 无效句柄
  • 非法指令
  • 整数被零除
  • 浮点数被零除
  • 整数溢出
  • 无效的锁定顺序
  • 访问冲突
  • 堆栈溢出
  • C++ EH 异常
  • 未知异常

使用ADPlus的命令举例

====================

为Hang住的情况抓Dump:

adplus -hang -pn w3wp.exe -o C:\dumps 为所有的w3wp.exe进程创建dump到C:\dumps

adplus -hang -p 1244            为进程ID为1244的进程创建内存转储文件.

adplus -hang –IIS                  为所有跟IIS相关的进程(比如w3wp.exe, inetinfo.exe, aspnet_wp.exe 和dllhost.exe)创建内存转储文件.

为Crash的情况抓Dump:

adplus -crash -pn w3wp.exe   在崩溃的时候为所有的w3wp.exe进程创建内存转储文件

adplus -crash -p 1244     在进程ID为1244的进程崩溃的时候为它创建内存转储文件

adplus -crash –IIS           为所有跟IIS相关的进程(比如w3wp.exe, inetinfo.exe, aspnet_wp.exe 和dllhost.exe)创建崩溃时的内存转储文件.

*****************************************************************************************************************************************************************************************

1、利用WinDbg里的adplus来获取dump文件

Adplus.vbs 是一个Visual Basic Script 文件,Adplus 主要用来生成内存转储文件 (dump file),内存转储文件适用于不能实时调试的情况下。在WinDbg安装目录里可以找到adplus.vbs,使用adplus.vbs生成dump文件,

adplus -hang -o d:\dump -p 1234

其中hang表示附加到进程,如果是crash,则为目标进程崩溃的时候抓取,-o后面的参数表示dump文件存到位置,-p后面的数字为进程的PID,也可以是-pn后面跟进程名称,如:adplus.vbs-hang -pn ConsoleWindbg.exe -o D:\dump

2、使用Debug Diagnostic Tool(DebugDiag)工具获取dump文件

下载Debug Diagnostic Tool然后进行安装,打开该工具,DebugDiagnostic Tool可以选择不同的规则来进行dump文件。可以根据程序崩溃时捕获dump文件,也可以根据性能指标来进行捕获,如CPU过高,死锁,HTTP响应时间过程等参数。如下图:

也可以找到对应的进程,通过如下方法进行捕获。此种方式获取的dump文件放到C:\Program Files\DebugDiag\Logs\Misc下。

3、使用.dump命令

1) 打开WinDBG—>File—>Attach to a Process,然后选择将之要进行捕获的进程。如我们这里要对ConsoleWindbg.exe进程产生dump文件。选择后如图:

2)在上图红色区域的输入框内输入产生dump 文件的命令 .dump 。可以选择不同的参数来生成不同类型的dump文件。

选项(1): /m

命令行示例.dump /m D:/dump/myapp.dmp

注解: 缺省选项,生成标准的minidump, 转储文件通常较小,便于在网络上通过邮件或其他方式传输。 这种文件的信息量较少,只包含系统信息、加载的模块(DLL)信息、 进程信息和线程信息。

选项(2): /ma

命令行示例.dump /ma D:/dump/myapp.dmp

注解: 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。

选项(3):/mFhutwd

命令行示例.dump /mFhutwd D:/dump/myapp.dmp

注解:带有数据段、非共享的读/写内存页和其他有用的信息的minidump。包含了通过minidump能够得到的最多的信息。是一种折中方案。

4、使用ProcDump工具

Procdump是一个轻量级的命令行工具, 它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因。你还可以把它作为生成dump的工具使用在其他的脚本中。有了它, 就完全不需要在同一台服务器上使用诸如32位系统上的Debug Diag 1.1或是64位系统上的ADPlus了。

Procdump下载:http://technet.microsoft.com/en-us/sysinternals/dd996900

procdump -ma -c 50% -s 3 -n 2 5844 (Process Name or PID) -oc:\dumpfile

-ma 生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息。

-c 在CPU使用率到达这个阀值的时候, 生成dump文件。

-s CPU阀值必须持续多少秒才抓取dump文件。

-n 在该工具退出之前要抓取多少个dump文件。

-o dump文件保存目录。

WinDbg基础(3)Adplus参数设置相关推荐

  1. 【Python基础】Pandas参数设置的八个小技巧

    在日常使用pandas的过程中,由于我们所分析的数据表规模.格式上的差异,使得同样的函数或方法作用在不同数据上的效果存在差异. 而pandas有着自己的一套「参数设置系统」,可以帮助我们在遇到不同的数 ...

  2. STM32F767 (基础)CubeMX参数设置之RCC

    1.RCC 设置 在 操 作 界 面 , 依 次 点 击 选 项 卡Pinout&Configuration -> Categoties -> System Core -> ...

  3. [Java基础]--JVM gc参数设置与分析

    感谢原文链接:http://xstarcd.github.io/wiki/Java/JVM_GC.html JVM gc参数设置与分析 原文: http://hi.baidu.com/i1see1yo ...

  4. 会声会影2020 2021 2022 基础操作和参数设置图文教程

    我们使用会声会影软件要想提高打开速度不仅要进行禁网和入站规则(新建规则)的设置,第一次打开软件后的很多设置和操作也至关重要,会声会影软件的确越来越臃肿,不断添加的插件更是不堪重负,所以建议各位量力而行 ...

  5. 【WY】数据分析 — Matplotlib 阶段一 :基础语法 四 —— 参数设置

    版权声明:本文为博主原创文章,未经博主允许不得转载. 文章目录 一.图表参数 1.1 基本参数 1.1.1 窗口大小 1.1.2 图表标题 1.1.3 轴标签 1.1.4 图例位置:loc 1.1.5 ...

  6. [网络安全自学篇] 二十七.Sqlmap基础知识、CTF实战及请求参数设置(一)

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Shodan搜索引擎的基本用法及Python命令行.本篇文章详细讲解了S ...

  7. html5 兼容移动端参数设置的一些小细节

    ####head 里面的一些参数设置 ######1.设置字节编码用utf-8的形式去解析 <meta charset="utf-8"> 复制代码 ######2.设置 ...

  8. 【嵌入式开发】时钟初始化 ( 时钟相关概念 | 嵌入式时钟体系 | Lock Time | 分频参数设置 | CPU 异步模式设置 | APLL MPLL 时钟频率设置 )

    文章目录 一. 时钟相关概念解析 1. 相关概念术语 ( 1 ) 时钟脉冲信号 ( 概念 : 电压幅度 时间间隔 形成脉冲 | 作用 : 时序逻辑基础 间隔固定 根据脉冲数量可计算出时间 ) ( 2 ...

  9. FPGA+DSP SRIO通信(一)——DSP端参数设置(通道)

    FPGA+DSP SRIO通信(一)--DSP端参数设置(通道) 原创 2017年04月19日 18:56:45 标签: SRIO-C66x 1217 经过漫长的探索之后,博主发现关于TI的板子调试和 ...

最新文章

  1. idea中如何打开RunDashboard窗口,微服务最实用设置
  2. Spring mvc 中处理模型数据 ModelAndView
  3. 自从用了这几个网站后,linux下的开发(使用)更加简单化
  4. JavaScript计算指定日期与当前日期的相差天数
  5. 日本老年人开始送外卖了 锻炼赚钱两不误 网友:饿死了么外卖?
  6. spring 主从表_听听京东架构师浅谈,MySQL binlog 主从同步
  7. 海量中文语料上预训练ALBERT模型:参数更少,效果更好
  8. 依赖注入应该慎用,测试可用测试框架帮忙
  9. 数据加载中...请稍后(js一句代码)
  10. ubuntu系统grub引导修复
  11. 【工控老马】欧姆龙PLC FINS指令模板整理
  12. 华为linux不识别U盘启动,华为电脑如何用u盘启动不了怎么办
  13. 荣耀智慧屏搭载了鸿蒙os吗,荣耀智慧屏尝鲜鸿蒙OS “一招鲜”能否吃遍天
  14. 大学期间应当做的三件事
  15. python实现电商平台秒杀商品脚本程序
  16. 运用百度框架paddle进行手势识别【动手实践,附源码】
  17. 2020ICPC沈阳站后记
  18. 数学基础--均值、方差、标准差、协方差
  19. KZ笔记5:连跳丧失速度的原因
  20. 众筹系统源码 java_基于JavaWeb的创意众筹网站系统的设计与实现 毕业论文+任务书+开题报告+外文翻译+设计源码+mysql文件...

热门文章

  1. 运行安卓程序报错android.view.InflateException: Binary XML file line #11: Error inflating class ImageView
  2. 程序员如何找个白富美!!!
  3. 又被拒了?替你猜透面试官的真实想法!
  4. Pregel(图计算)技术原理
  5. cJSON 使用记录
  6. IDEA 使用 SVN 操作详解
  7. Windows - 隐藏底部任务栏日期和时间(最右侧日期时间星期)
  8. ZipArchive压缩文件,文件夹以及解压文件和文件夹
  9. WindowsPhone7线下沙龙北京站(第三场)
  10. 基于OpenCV的Gamma校正原理与实现