什么是Windbg
Windbg是微软发布的一款相当优秀的源码级调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。
Windbg能解决哪些问题
1:查看高内存。
2:查看高CPU。
3:程序异常。
4:程序Hang死。
Windbg分析方式
1:使用windbg调试器attach到需要调试的进程。(会暂停进程的运行)
2:抓取进程的dump文件,使用windbg分析dump文件。
准备工作
1:安装Windbg
可以通过腾讯电脑管家下载:在软件管理里面搜索windbg即可,如下:
2:设置symbol path
srvc:\symcachehttp://msdl.microsoft.com/download/symbols;c:\symcache;
3:加载sos
3.1:SOS调试扩展让你可以查看在公共语言运行时里面运行的代码的有关信息。
3.2:加载命令:.load
例子:.load C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/sos.dll
强调:sos.dll 版本要和运行的程序的版本对应。最佳方式是,加载运行程序所在服务器的sos.dll
分析高内存
方法非常简单,拿到dump文件后,只需要三个命令就可以查看是哪个对象占用的内存多了:
1:!dumpheap -stat //检查当前所有托管类型的统计信息
2:!dumpheap -mt 70a7fbe0 min 200 //查看200byte以上的字符串
3:!do 0348509c //试用!do命令查看对象的内容
至此 就能查看到是哪个对象导致的内存过高,然后 自行处理。
分析高CPU
方法也非常简单,只需要三个命令:
1:!runaway //看看是哪个线程占用的CPU时间多
2:~1s //切换到占用时间较多的线程(切换到1号线程)
3:!clrstack //打印堆栈
至此 就能查看到是哪个方法导致CPU过高,然后自行处理。