博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Windbg

Posted on 2011-01-21 15:59  a-peng  阅读(466)  评论(0编辑  收藏  举报

1. Download Windbg

www.windbg.org

2. sos.dll and mscordacwks.dll
sos.dll
--------------------
http://msdn.microsoft.com/zh-cn/library/bb190764(vs.80).aspx
SOS 调试扩展允许您查看有关在公共语言运行库内运行的代码的信息。 例如,可以使用 SOS 调试扩展显示有关托管堆的信息、查找堆损坏情况、显示运行库所使用的内部数据类型以及查看有关在运行库内运行的所有托管代码的信息。帮助您在 WinDbg.exe 调试器和 Visual Studio 中调试托管程序。

mscordacwks.dll
--------------------
http://stackoverflow.com/questions/670725/mscordacwks-dll-and-mscorwks-dll-confusions

mscorwks is the main MS CLR implementation.

mscordacwks provides a data-access abstraction over the CLR details, so that debuggers (such as SOS) don't need to know too much about the internals of mscorwks

3. Command
01010101 指代内存地址

> .load sos.dll
> .load mscordacwks.dll

> !help
> !DumpDomain 列出所有Domain
> !DumpDomain 01010101 列出01010101 Domain的详细信息
> !SaveModule 01010101 C:\Test.dll 将Module 01010101保存成dll可以使用Reflector查看
> !Name2EE * ConsoleApplication1.Program 遍历所有已加载模块,查看ConsoleApplication1.Program类型
> !Name2EE ConsoleApplication1.exe!ConsoleApplication1.Program 从ConsoleApplication1.exe中查看ConsoleApplication1.Program类型
> !DumpMD 010101 查方法
> !DumpClass 010101 查类
> !do 010101  查值

> .time
> !threadpool
> !threads
> ~3s ID为3的线程
> !clrstack 调用堆栈
> !dumpmt -md 010101 查看方法描述符,会有相关调用堆栈