WinDbg 调试命令记录一

WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。
下载地址:http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

----------------------------------
----------------------------------

缓存路径设置:

srv*c:\ABeenSymcache*http://msdl.microsoft.com/download/symbols;c:\ABeenSymcache; // "c:\ABeenSymcache" 为本机设置的存储路径
----------------------------------
非托管代码信息查看命令:

~    // 列出当前所有线程,当前线程左边有一点“.”

~ ns // 切换到线程n ,如:~ 2s切到线程2

kb  // 查看线程被抓时刻的操作

~* kb :查看所有线程被抓时刻的操作

托管代码信息查看命令:

“.load clr20\sos.dll” // 载入.net sos.dll "clr20" 为sos.dll存放目录名(或.loadby sos mscorwks)

!clrstack     // 查看当前线程 managed code 的信息

~* e!clrstack // 查看全部线程的managed code信息

!dso(Dump Stack Objects的缩写)  // 显示当前栈上所有的变量

!do+变量地址(dump object的缩写) // 查看变量的信息(托管代码,最核心的命令是 ) ,-nofields 参数,对于string这些类型,能输出的信息少点。

DumpVC <Method Table> <Value object start addr>
  Example: DumpVC 907b50 67903084 //查看值类型结构


!da+地址  // 查看数组信息

dd   // 查看hashtable信息

-------------------------------------------------------------------------------

!bpmd ConsoleApp.exe ConsoleApp.Program.Tets //表示在些方法加断点

!dumpheap   // 查看托管堆上所有的信息,-stat参数按照托管资源的类型group by,每个不同的类型的信息都列出来,TotalSize来排序的(但是这个size不准,注意)!dumpheap -stat和!dumpheap -mt <methodtable>是很有用的,尤其在分析high cpu/ high memory的时候。
          -min,这个命令的好处是,只列出比指定大小大的对象出来(如: !dumpheap -mt 790fd8c4 -min 8000)。
          -type,可以指定我们要看的类型。如string,如hashtable等。

原文地址:https://www.cnblogs.com/abeen/p/1292110.html