01
6

用Windbg来分析.Net程序的dump

0
归档:2020年6月分类:C#和.NET
内容纲要

用Windbg来分析.Net程序的dump

1. 什么是Windbg

WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。
WinDbg是微软很重要的诊断调试工具: 可以查看源代码、设置断点、查看变量, 查看调用堆栈及内存情况。
Dump文件是进程的内存镜像, 可以把程序的执行状态通过调试器保存到dump文件中

2. Windbg可以解决以下问题

◆ 内存高
◆ CPU高
◆ 程序异常
◆ 程序Hang死

3. 使用windbg进行调试分析的两种方式

使用windbg调试器attach到需要调试的进程。(会暂停进程的运行)
抓取进程的dump文件,使用windbg分析dump

下载地址:https://technet.microsoft.com/en-us/sysinternals/dd996900

下载之后为压缩包,将文件解压。通过dos命令来生成dump文件。下面为一条语句为示例

procdump -ma -c 0 -s 3 -n 2 sqlservr.exe -o E:\dumps\

这条语句的意思为:当sqkservr.exe这个进程运行时间cpu的占用超过0%,时间超过3秒,则在E:\dumps下生成一个dump文件。一直到生成2个为止。下面为命令介绍

-ma 生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息.
-c 在CPU使用率到达这个阀值的时候, 生成dump文件.
-s CPU阀值必须持续多少秒才抓取dump文件.
-n 在该工具退出之前要抓取多少个dump文件.
-o dump文件保存目录.
Sqlservr.exe可替换为进程的ID


声明: 本文采用 BY-NC-SA 协议进行授权. 未标注“转”的文章均为原创,转载请注明转自: 用Windbg来分析.Net程序的dump

公告栏

欢迎大家来到我的博客,我是dodoro,希望我的博客能给你带来帮助。