Windbg Extension NetExt
Windbg Extension NetExt
摘要 : 在使用WINDBG做debugging的时候,需要一个好的工具帮助进行数据分析. 最常见的extension包括SOS, PSSCOR. NetExt则是另外一种提供了丰富命令功能的debugging extension. NetExt主要用于Managed Code的分析功能, 对ASP.NET, WCF, WIF有良好的支持, 并且提供了很多常用的分析命令. 它涵盖了SOS以及PSSCOR的绝大部分命令, 并且提供了更为强大的数据挖掘的功能. 在这个系列里面, 我将一一介绍这个功能.
基础介绍
NetExt Extension是Microsoft公司的员工开发的一款Debugging Extension. 下载地址为 : http://netext.codeplex.com/
该Extension已经开源, 代码地址可以在这里下载 : http://netext.codeplex.com/SourceControl/latest
NetExt则是另外一种提供了丰富命令功能的debugging extension. NetExt主要用于Managed Code的分析功能, 对ASP.NET, WCF, WIF有良好的支持, 并且提供了很多常用的分析命令. 它涵盖了SOS以及PSSCOR的绝大部分命令, 并且提供了更为强大的数据挖掘的功能.
NetExt Extension 并不需要SOS或者PSSCOR等Extension的支持. 它直接使用.NET debugging API. 下面的步骤将展示如何使用这个非常强大的Extension.
前期准备
- 首先必须要安装好32-bit和64-bit版本的WINDBG. 可以从这里下载 : https://msdn.microsoft.com/en-us/library/windows/hardware/ff551063(v=vs.85).aspx
 - 从这里下面的连接下载好NetExt : http://netext.codeplex.com/
 - 解压NetExt
 - 将对应版本的NetExt拷贝到相应的WINDBG安装目录下面.

 
基本操作
下面的步骤简单的Demo一下如何将NetExt Load到WINDBG中, 并且进行一基本的命令调用.
1. 打开已经安装好的WINDBG.
2. 在WINDBG打开之后, 点击菜单栏的 File –>Open Crash Dump...
3. 打开一个实验用的DMP文件, 点击 Open.
4. DMP 文件被读取之后会显示一些基本的信息.

5. 在CLR Runtime里面, 可以通过检查mscorwks.dll或者clr.dll的版本信息来确定.NET Framework的版本情况. 具体可以参考这个链接 : https://msdn.microsoft.com/library/windows/hardware/ff540665(v=vs.85).aspx
一般来说, .NET 3.5及其以前的版本, CLR Runtime会读取mscorwks.dll. .NET 4.0及其以后的版本, CLR Runtime会读取clr.dll.
要检查这个情况, 可以执行命令 lmv mclr 或者 lmv mmcorwks
如果没有包含这个DLL的信息, 则说明没有这个对应的CLR Runtime. 例如以下的命令 lmv mclr, 如果没有任何显示, 则表示.NET 4.0没有被Load进来. 相对的, 则应该是.NET 4.0以上版本.


6. 调用命令 .load netext , 就会把NetExt Extension Load进去. 之后才可以使用这个Extension所提供的命令.

7. NetExt提供了类似于SOS中!do的命令用于dump 一个object的内容. 可以使用!netext.wdo 这个命令.

8. 不仅如此, NetExt提供许多了非常便捷的命令. 例如对于数组的处理. 在NetExt相对SOS有更好的表现. 例如下面的例子, !NetExt.wdo 命令可以直接将一个三维数组展现出来. 这一点SOS以及PSSPOR的展现则计较不如人意.


Sonic Guo
Windbg Extension NetExt的更多相关文章
- Windbg Extension NetExt 使用指南 【1】 ---- NetExt 介绍
		
摘要 : 在使用WINDBG做debugging的时候,需要一个好的工具帮助进行数据分析. 最常见的extension包括SOS, PSSCOR. NetExt则是另外一种提供了丰富命令功能的deb ...
 - Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍
		
摘要 : 本章节介绍NetExt常用的命令. 并且对SOS进行一些对比. NetExt的帮助 要想玩好NetExt, 入门就得看帮助. 看NetExt的帮助可以调用!whelp 命令. 这样hi列举出 ...
 - Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap
		
摘要 : NetExt中有两个比较常用的命令可以用来分析heap上面的对象. 一个是!wheap, 另外一个是!windex. !wheap 这个命令可以用于打印出heap structure信息. ...
 - 深入理解Windows X64调试
		
随着64位操作系统的普及,都开始大力进军x64,X64下的调试机制也发生了改变,与x86相比,添加了许多自己的新特性,之前学习了Windows x64的调试机制,这里本着“拿来主义”的原则与大家分享. ...
 - windows内存debug技巧
		
A) c++ memory/heap corrupt debug 技巧 1. catch first exception2. data breakpointVC tell us some addres ...
 - WinDbg常用命令系列---.load, .loadby (Load Extension DLL)
		
.load, .loadby (Load Extension DLL) 简介 .load和.loadby命令将新的扩展DLL加载到调试器中. 使用形式 .load DLLName !DLLName.l ...
 - Windbg调试命令详解
		
作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe.ntsd. ...
 - Windbg使用简明指南
		
第一章 准备 1.1. 环境配置 _NT_DEBUGGER_EXTENSION_PATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 _NT_SY ...
 - 调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令
		
调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令 调试SQLSERVER (一)生成dump文件的方法调试SQLSERVER (二)使用Windbg调试SQLSERVER ...
 
随机推荐
- STL之容器适配器queue的实现框架
			
说明:本文仅供学习交流,转载请标明出处,欢迎转载! 上篇文章STL之容器适配器stack的实现框架已经介绍了STL是怎样借助基础容器实现一种经常使用的数据结构stack (栈),本文介绍下第二种STL ...
 - ACM:图BFS,迷宫
			
称号: 网络格迷宫n行m单位列格组成,每个单元格无论空间(使用1表示),无论是障碍(使用0为了表示).你的任务是找到一个动作序列最短的从开始到结束,其中UDLR同比分别增长.下一个.左.向右移动到下一 ...
 - 为什么OC语言很难
			
作为一个Objective-C的coder,我总能听到一部分人在这门语言上抱怨有很多问题.他们总在想快速学习这门语言来写一个App出来,但他们也总是联想到Objective-C看上去实在太难了或者在想 ...
 - ZOJ 3820 Building Fire Stations
			
题意: 树上找两个点 使得其它点到这两点随意一点的距离的最大值最小 思路: 最大值最小 想到二分 在二分的基础上判定这个最大值是否可能 怎样判定这个问题就是怎样选那两个点的问题 非常明显 我 ...
 - Android使用开发WebView战斗技能
			
转载请注明出处:http://blog.csdn.net/allen315410/article/details/44619181 前段时间做项目的时候.在项目中用了WebView组件,遇到了一些问题 ...
 - 谈话节目APE系列:如何成为技术达人
			
作为一个程序猿,总有消退的前辈.或更年轻的同行.牛逼的人总是羡慕. 让我们搞自己痛苦的日子 BUG .头发很快结束了抓,人们扫两.修改一行代码.问题得以克服:例如,他们自己开发的十年,少付 10K , ...
 - NET MVC权限验证
			
ASP.NET MVC权限验证 封装类 写该权限类主要目地 为了让权限配置更加的灵活,可以根据SQL.json.或者XML的方式来动态进行页面的访问控制,以及没有权限的相关跳转. 使用步骤 1.要建一 ...
 - 读改善c#代码157个建议:建议13~15
			
目录: 建议13:为类型输出格式化字符串 建议14:正确实现浅拷贝和深拷贝 建议15:使用dynamic来简化反射实现 一.建议13:为类型输出格式化字符串 有些类型需要我们根据业务需求提供字符串的格 ...
 - uva 10817 - Headmaster's Headache ( 状态压缩dp)
			
本文出自 http://blog.csdn.net/shuangde800 题目链接: 点击打开链接 题目大意 某校有n个教师和m个求职者,已知每人的工资和能教的课程集合,要求支付最少的工资使得每 ...
 - poj   1004  Dividing
			
大意是,从输入六个数 .第i个数代表价值为i的有几个,平均分给两个人 ,明摆着的背包问题,本来以为把他转化为01背包.可是TLe,后来发现是12万的平方还多,所以妥妥的TLE,后来发现这是一个全然背包 ...