WinDbg 之 SOS扩展命令】的更多相关文章

SOS.dll (SOS debugging extension) The SOS Debugging Extension (SOS.dll) helps you debug managed programs in Visual Studio and in the Windows debugger (WinDbg.exe) by providing information about the internal Common Language Runtime (CLR) environment.…
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册> <WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册> 导航目录 扩展加载命令 对象审查命令 数据结构审查命令 代码堆栈审查命令 垃圾回收历史审查命令 诊断工具命令 SOS 调试命令手册 扩展加载命令 命令 描述…
在博客堂的不是我舍不得 - High CPU in GC(都是+=惹的祸,为啥不用StringBuilder呢?). 不是我舍不得 - .NET里面的Out Of Memory 看到很多人在问如何分析dump,所以就写下了这篇短文,抛砖引玉. 一.安装 DebuggingToolsforWindows: 从以下 Microsoft 网站下载 DebuggingToolsforWindows:http://www.microsoft.com/whdc/devtools/debugging/inst…
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册> <WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册> 导航目录 扩展加载命令 SOSEX扩展命令 SOSEX 调试命令手册 扩展加载命令 命令 描述 .load .load sosex .load C:\Pro…
好长一段时间没写文章了,最近一直忙于为项目的可调式性做一些脚本和扩展工具,鉴于对windbg强大威力的震撼,以及相对较少的资料,笔者决定写一系列关于如何开发Windbg脚本和扩展命令的文章,您的支持是我最大的动力,希望本系列文章对您有所帮助. 那么一个完整的windbg script是什么样子的呢?首先让我们看如下示例: $$ 该脚本是列出用户进程和栈   r $t0 = nt!PsActiveProcessHead  .for (r $t1 = poi(@$t0); (@$t1 != 0) &…
SOS是什么? 直观来说,sos就是一个程序集文件.这个程序集的作用就是让我们在使用windbg分析.net进程时,更加方便快捷.通过sos,我们可以清晰的查看CLR运行时的各类信息,辅助我们去理解托管内存的状态和含义. 这个程序集是随.NET Framework一起安装的,一般不需要单独安装.在我本机自动安装的位置如下: C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll C:\Windows\Microsoft.NET\Framewor…
C#编程模式之扩展命令 前言 根据上一篇的命令模式和在工作中遇到的一些实际情况,有了本篇文章,时时都是学习的一个过程,会在这个过程中发现许多好的模式或者是一种开发方式,今天写出来的就是我工作中常用到的,自己感觉这种方式很优雅很漂亮,就自己试着实现了一下,可能原框架中不是这样的,有许多不足之处还请大家指点. 需求 我还不清楚这种方式是模式还是框架开发中用到的技术,我暂且叫它为命令控制器吧. 命令控制器的主要功能就是获取用户提供的命令,然后来执行命令. 在这里我把要执行的“命令”设计成一个函数,会对…
调试dump文件,加载相匹配版本的sos/clr时,绝大多数都是可以正常使用的. 然而凡事都有例外,今天在做类似工作时,遇到了错误: CLRDLL: Consider using ".cordll -lp <path>" command to specify .NET runtime directory. Failed to load data access DLL, 0x80004005 再次指定mscordacwks.dll所在路径,问题解决. To debug a m…
收到一个dump文件,运行环境的.net framework的详细版本是多少呢? dump信息与性能计数器结合分析时,想知道该dump运行的进程号是多少? dump定位到有效的堆栈信息,而对应的源码是怎么写的呢? mex扩展提供了大量节省人力搜索的命令,类似扩展可以到windbg网站了解:http://www.windbg.org/ 0:102> .time Debug session time: Wed Nov 15 10:44:19.000 2017 (UTC + 8:00) System…
暂时不用Windbg,用VS来调试CLR. 1) Enable unmanaged debugging 2) Load sos.dll into vs. !DumpHead -type SimpleClass 获得SimpleClass对象的一个地址,0x0280b630 3) 观察0x0280b630-4=0x0280b62c 另给出一个method table的布局图: 参考文章: http://www.microsoft.com/china/MSDN/library/netFramewor…