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 ...
随机推荐
- 为什么windows dos和Linux shell有这样的差别??
Windows dos随着impdp导入数据库: impdp "sys/password@ip:1521/sidname as sysdba" directory=dbdir du ...
- Visual Studio中开发
如何在Visual Studio中开发自己的代码生成器插件 Visual Studio是美国微软公司开发的一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代 ...
- 分散式-ubuntu12.04安装spark-1.0.0
1. 安装文档: http://spark.apache.org/docs/latest/spark-standalone.html 2. web UI: master's web UI, which ...
- hdu 5030 Rabbit's String(后缀数组&二分法)
Rabbit's String Time Limit: 40000/20000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- Java实现 Base64、MD5、MAC、HMAC加密(转)
开始对那些基本的加密还不怎么熟练,然后总结了些,写了一个测试:支持 Base64.MD5.MAC.HMAC加密,长话短说,我们都比较喜欢自己理解,看代码吧! 采用的输UTF-8的格式... packa ...
- C、C++用指针引用的差异
1:并引述之间的区别在概念的指针 参考是可变的别名.例如 int m; int &n=m; 引用作为一个别名.它在逻辑上不是独立的.它的存在具有依附性.所以引用必须在一開始就被初始化.并且其引 ...
- ASP.NET 5 Beta8 发布
ASP.NET 5 Beta8 发布 ASP.NET 5 的路线图(详见 ASP.NET 5 Schedule and Roadmap : https://github.com/aspnet/home ...
- js 滚轮事件 滚轮焦点图(轮播图)
利用滚轮,切换轮播图.附带mousewheel插件以及原生js写法: <!doctype html> <html> <head> <meta charse ...
- android 防止多次点击提交
版权声明:本文博客原创文章.博客,未经同意,不得转载.
- Windows下 C++ WT +VS2013配置
引出 最近在学习使用C++,另外对建站有点兴趣,所以就找到了WT.对于WT的详细介绍,这里不讲,直接看官网就好. 此文为本人原创,转载请注明出处. 先丢出官网上的干货: WT官方网站: https:/ ...