winDbg是Debugging tool for windows,功能强列,专门用来查找crash,high cup or high memory或run slowly等问题。支持.net和非托管的组件或exe。
winDbg是微软开发的一款免费工具,你可以从以下地址获取: http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx,安装后的目录copy到其它机器上也可以用。
安装后首先设置符号表路径,file->symbol file path,如下
srv*E:\tools\winDbg\SystemSymbols*http://msdl.microsoft.com/download/symbols,E:\tools\winDbg\SystemSymbols为本地symbol缓存目录,企业中建议找一台专门的服务器用作符号文件的存储,这样可以不用每个人都下载一份符号文件,而可以共用一个。
winDbg可以用多种方式来追踪问题,如attach a process,open exe or open dump,用的比较多的是dump,dump文件的获取可以通过如下命令获取adplus -hang -pn 我的应用程序.exe -o dump保存的路径,这样就可以dump下当前时刻运行的我的应用程序的堆栈信息。
常用命令:
.load clr10\sos.dll --for .net 1.1
查看线程 ~
线程切换 ~+线程序号+s
查看当前线程非托管线程内容 kb
查看所有线程非托管线程内容 ~*kb
!help
.time
!threadpool
!theads
!runaway
查看当前线程托管线程内容 !clrstack
查看所有线程托管线程内容 ~*e!clrstack 带参数信息加-p
所有变量 !dso
查看变量 !do + 变量地址
!dumpheap -stat
!dumpheap -mt 地址
转载于:https://www.cnblogs.com/shore/archive/2008/01/04/1026244.html