本文参考:http://www.cnblogs.com/hfclytze/p/3613712.html

下载地址:http://download.microsoft.com/download/B/4/6/B46E9984-5DF2-4B56-AE32-D60A88C2A6D8/DebugDiagx64.msi

先介绍一下 Debug Diagnostic Tool,此工具常用的功能主要有两个:抓取 DUMP 和分析 DUMP。另外,它还可以附加到进程进行调试,或是监视内存和句柄的泄漏。可以进行手动抓取DUMP和根据设置自动抓取DUMP。

下面我们就来看看如何使用 Debug Diagnostic Tool 抓取 DUMP。(工具安装很简单,这里不进行介绍)

2.1  手动抓取 DUMP

这里我们将用应用程序池IIS来进行说明的,我们只要在 Debug Diagnostic Tool 中的 Processes 标签页中找到对应的进程名为“w3wp.exe”的进程,然后右键选择“Create Full Userdump”即可。


不过通常情况下,我们会用应用程序池把不同的站点和虚拟目录分开,这时系统里会有多个名为“w3wp.exe”的进程。我们可以在命令提示符下执行“iisapp”,得到进程 ID 与应用程序池的对应关系,然后在 Debug Diagnostic Tool 中根据进程 ID 选取要抓取 DUMP 的进程。

补充:IIS7中改为 在 %SystemRoot%\System32\inetsrv 路径下 执行 appcmd list wp 

2.2  自动抓取 DUMP

要自动抓取 DUMP,就必须设定一些抓取 DUMP 的条件,当系统状况满足条件时,Debug Diagnostic Tool 会根据要求抓取指定进程的 DUMP。Debug Diagnostic Tool 的抓取条件分三种:Crash(系统崩溃)、Performance (系统性能资源) 和 Memory and Handle Leak (内存和句柄泄漏)。

第1步:在工具的 Rules 标签页,点击“Add Rule...”按钮,开始添加一个抓取 DUMP 的规则。由于目前我们系统暴露出来的问题主要是WEB服务器中CPU异常,所以这里我们选择“Performance”。再选择“performance counters”,选择我们要跟踪的服务器性能计数器,下一步。

第2步:在配置选项中,选择我们要跟踪的服务器性能计数器,本次我需要监控的是系统CPU占用率。添加完成后“下一步”。

第3步:比如我们要跟踪 web application pool (WEB应用程序池) 错误,则要在dump target 设置中添加异常设置“web application pool”,将 web application pool name 设置为我们测试的应用程序“ihou.APIServer”。

第4步:在配置选项中,配置进行一系列的配置,即可完成。

第5步:在配置项中在配置“性能监视器的触发特性”,“Rules”中双击上面步骤中所添加的Rules Type,在打开的properties of performance monitor trigger页中设置DUMP的触发值,至此所有的设置即可完成。

3      分析DUMP

在工具的 Advanced Analysis 标签页,点击“Add Data Files”按钮,选择要进行分析的 DUMP 文件。再选择可用的分析脚本和数据文件,点击“Start Analysis”即可开始分析。第一次进行分析,工具会到微软网站下载调试文件,所以会有点慢。

工具可供使用的分析脚本有两个:Crash/Hang Analyzers (崩溃/挂起分析) 和 Memory Pressure Analyzers (内存压力分析)。
Crash/Hang 分析的结果会列出各个线程的执行时间,最后调用的 Function 等,如果有线程阻塞,也会给出警告信息。

内存压力分析的结果主要是内存使用情况,如内存碎片率、空闲内存大小、保留内存大小、使用内存大小等,每个模块、线程、堆使用内存的情况都有列出。

这个工具分析 DUMP 的功能不如 WinDbg,具体的分析我们还得用 WinDbg 了。下面我们来介绍一下WinDbg分析功能。

这次只是简单介绍这个工具,后续会有相关的实战文章

转载于:https://www.cnblogs.com/HouZhiHouJueBlogs/articles/4563506.html

Debug Diagnostic Tool相关推荐

  1. 使用Debug Diagnostic Tool排除内存泄漏故障

    使用Debug Diagnostic Tool排除内存泄漏故障 翻译自:https://mssqlwiki.com/2012/12/06/debugging-memory-leaks-using-de ...

  2. 调试winddows程序(windbg 和 Debug Diagnostic Tool)

    一.功能: 调试不在编译器中运行的程序.可以解决一下两种问题. 1. 程序崩溃,能找到程序报错是运行的代码行. 2. 程序涨内存,直接定位到导致内存泄漏的语句.(这个在Debug Diagnostic ...

  3. UWP开发入门(十三)——用Diagnostic Tool检查内存泄漏

    因为.NET的垃圾回收机制相当完善,通常情况下我们是不需要关心内存泄漏的.问题人一但傻起来,连自己都会害怕,几个页面跳啊跳的,内存蹭蹭的往上涨,拉都拉不住.这种时候我们就需要冷静下来,泡一杯热巧克力. ...

  4. HTTP Error 503与.NET 3.5 SP1 X64

    2009年4月的日子里,每天总有那么几次,早上.中午或者夜里都可能出现它的身影,不知它给园子里多少朋友带来了麻烦!,它就是: HTTP Error 503. The service is unavai ...

  5. SQL Server内存泄漏

    翻译自:https://mssqlwiki.com/2012/12/04/sql-server-memory-leak/ 什么是内存泄漏? 当一个进程分配了内存,它应该回收并释放给操作系统.如果由于代 ...

  6. About Memory leak

    Using Windbg To start working with Windbg: Configure the symbol file path to the Microsoft symbol se ...

  7. WinDbg基础(3)Adplus参数设置

    DPlus是如何工作的? ================ ADPlus 具有两种操作模式: "Hang"模式用于解决进程挂起.100% CPU 使用率以及不涉及崩溃的其他问题.当 ...

  8. Oracle RDA(Remote Diagnostic Agent) 工具说明

    Oracle RDA(Remote Diagnostic Agent) 工具说明 分类: Oracle 性能调优 Oracle 高级知识  一.RDA 说明 RDA(RemoteDiagnostic ...

  9. aix 5.3 安装oracle 10g r2,AIX 5.3 安装 Oracle 10g R2(64)

    AIX 5.3 安装 Oracle 10g R2(64) 系统环境: 操作系统: AIX5300-09 Oracle:  Oracle 10gR2(64) 一.安装前准备 1.查看操作系统的版本 [r ...

最新文章

  1. 【组队学习】【31期】基于Python的办公自动化
  2. oracle调用存储过程
  3. java程序员修炼之道
  4. 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现
  5. 580分左右的计算机院校,2021年高考580分可以上什么大学 580分左右的院校
  6. Apache-DBUtils实现CRUD操作,已封装的API实现jdbc对数据库进行操作
  7. php 连接mssql
  8. 深入理解Java虚拟机:虚拟机类加载机制
  9. 【渝粤教育】国家开放大学2018年秋季 2208T政治学原理 参考试题
  10. android 修改gps坐标,[原创] 改机 - 从源码着手任意修改GPS地理位置
  11. COM:求助根系分泌物:受胁迫植物从土壤中招募益生菌的适应性机制
  12. [A133 Android11] 连接pc板子掉电
  13. config配置解析
  14. 只有一重循环的排序——侏儒排序(Gnome Sort)
  15. 诺基亚智能手机内存不足等问题的解决
  16. 直播带货那么火,测试人员如何对直播类产品的直播质量进行测试呢?
  17. 云平台短信验证码通知短信java/php/.net开发实现
  18. c语言动态分配内存keil,keil5中结构体分配内存问题
  19. 华为云位居IDC中国大数据平台市场研究报告第一
  20. springboot切面AOP拦截父类或接口中标记注解的方法

热门文章

  1. 三十五、Fluent阻力系数问题
  2. 美容院加盟十大品牌到底怎么选
  3. 【docker】docker容器端口如何暴漏出来?
  4. 寻找三体文明:五环外4.2光年发现液态水,或许另一个宜居星球
  5. linux常用运维shell,常用的shell命令,持续更新 | linux运维小站–linux系统架构_服务器运维_Linux运维工程师工作手札...
  6. Python|猜球博弈
  7. 我的学习工作经历,一个园林专业中专毕业生的IT之路 学习编程 创业
  8. 深度解析:CPU与GPU有什么区别?xPU又是什么鬼?
  9. 猴子吃桃问题(三种方法解决)
  10. 无法找到合适的显示设备.正在关闭程序