Debug Diagnostic Tool
本文参考: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相关推荐
- 使用Debug Diagnostic Tool排除内存泄漏故障
使用Debug Diagnostic Tool排除内存泄漏故障 翻译自:https://mssqlwiki.com/2012/12/06/debugging-memory-leaks-using-de ...
- 调试winddows程序(windbg 和 Debug Diagnostic Tool)
一.功能: 调试不在编译器中运行的程序.可以解决一下两种问题. 1. 程序崩溃,能找到程序报错是运行的代码行. 2. 程序涨内存,直接定位到导致内存泄漏的语句.(这个在Debug Diagnostic ...
- UWP开发入门(十三)——用Diagnostic Tool检查内存泄漏
因为.NET的垃圾回收机制相当完善,通常情况下我们是不需要关心内存泄漏的.问题人一但傻起来,连自己都会害怕,几个页面跳啊跳的,内存蹭蹭的往上涨,拉都拉不住.这种时候我们就需要冷静下来,泡一杯热巧克力. ...
- HTTP Error 503与.NET 3.5 SP1 X64
2009年4月的日子里,每天总有那么几次,早上.中午或者夜里都可能出现它的身影,不知它给园子里多少朋友带来了麻烦!,它就是: HTTP Error 503. The service is unavai ...
- SQL Server内存泄漏
翻译自:https://mssqlwiki.com/2012/12/04/sql-server-memory-leak/ 什么是内存泄漏? 当一个进程分配了内存,它应该回收并释放给操作系统.如果由于代 ...
- About Memory leak
Using Windbg To start working with Windbg: Configure the symbol file path to the Microsoft symbol se ...
- WinDbg基础(3)Adplus参数设置
DPlus是如何工作的? ================ ADPlus 具有两种操作模式: "Hang"模式用于解决进程挂起.100% CPU 使用率以及不涉及崩溃的其他问题.当 ...
- Oracle RDA(Remote Diagnostic Agent) 工具说明
Oracle RDA(Remote Diagnostic Agent) 工具说明 分类: Oracle 性能调优 Oracle 高级知识 一.RDA 说明 RDA(RemoteDiagnostic ...
- 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 ...
最新文章
- 【组队学习】【31期】基于Python的办公自动化
- oracle调用存储过程
- java程序员修炼之道
- 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现
- 580分左右的计算机院校,2021年高考580分可以上什么大学 580分左右的院校
- Apache-DBUtils实现CRUD操作,已封装的API实现jdbc对数据库进行操作
- php 连接mssql
- 深入理解Java虚拟机:虚拟机类加载机制
- 【渝粤教育】国家开放大学2018年秋季 2208T政治学原理 参考试题
- android 修改gps坐标,[原创] 改机 - 从源码着手任意修改GPS地理位置
- COM:求助根系分泌物:受胁迫植物从土壤中招募益生菌的适应性机制
- [A133 Android11] 连接pc板子掉电
- config配置解析
- 只有一重循环的排序——侏儒排序(Gnome Sort)
- 诺基亚智能手机内存不足等问题的解决
- 直播带货那么火,测试人员如何对直播类产品的直播质量进行测试呢?
- 云平台短信验证码通知短信java/php/.net开发实现
- c语言动态分配内存keil,keil5中结构体分配内存问题
- 华为云位居IDC中国大数据平台市场研究报告第一
- springboot切面AOP拦截父类或接口中标记注解的方法
热门文章
- 三十五、Fluent阻力系数问题
- 美容院加盟十大品牌到底怎么选
- 【docker】docker容器端口如何暴漏出来?
- 寻找三体文明:五环外4.2光年发现液态水,或许另一个宜居星球
- linux常用运维shell,常用的shell命令,持续更新 | linux运维小站–linux系统架构_服务器运维_Linux运维工程师工作手札...
- Python|猜球博弈
- 我的学习工作经历,一个园林专业中专毕业生的IT之路 学习编程 创业
- 深度解析:CPU与GPU有什么区别?xPU又是什么鬼?
- 猴子吃桃问题(三种方法解决)
- 无法找到合适的显示设备.正在关闭程序