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 ...
随机推荐
- ssh远程登录报错REMOTE HOST IDENTIFICATION HAS CHANGED!解决方式及原因
注意,文档中的ip和指纹已经替换为了ip.ip.ip.ip 和aa:... ,以免引起不必要的误会. icode@test:~/lab/dir/sadf$ ssh remote_name@ip.ip. ...
- 《Lua游戏开发实践指南》读后感
书籍地址:http://book.douban.com/subject/20392269/ 一句话点评该书:想用Lua作游戏脚本开发的同学值得一读! (一)本书特点 市面专门讲Lua的中文书籍非常少, ...
- hdu 3076 ssworld VS DDD (概率dp)
///题意: /// A,B掷骰子,对于每一次点数大者胜,平为和,A先胜了m次A赢,B先胜了n次B赢. ///p1表示a赢,p2表示b赢,p=1-p1-p2表示平局 ///a赢得概率 比一次p1 两次 ...
- HDU 4896 Minimal Spanning Tree(矩阵高速功率)
意甲冠军: 给你一幅这样子生成的图,求最小生成树的边权和. 思路:对于i >= 6的点连回去的5条边,打表知907^53 mod 2333333 = 1,所以x的循环节长度为54,所以9个点为一 ...
- 【Hibernate学习】 ——ORM(三)
前面几种关系我们曾经就常常常使用,对于继承我们也并不陌生,常常接触的类与类之间的继承用extendskeyword,那么在表与表的关系中怎样表示呢?以下我们来讲继承映射. 继承有三种实现的策略,单表继 ...
- T-SQL技巧收集——拆分字符串
原文:T-SQL技巧收集--拆分字符串 在开发中,很多时候都需要处理拆分字符串的操作.下面收集了几种方法供大家分享,其中的逗号可以改为多种有需要的符号,但是不能针对多种符号同时存在的例子.有待各位补充 ...
- Notes系统安全日志
最近出现了一些不正常的操作系统,但到目前为止,只有一个粗略的验证,然而,彻底清除.对于安全日志系统中的一些总结. 1.系统登录必须先登录 该日志必须包含:登录时间.注销时间.登录ip.主机名.MAC住 ...
- [Network]Transport Layer
1 Principles behind Transport Layer Services 1.1 Multiplexing/Demultiplexing Multiplexing at sender ...
- linux 字符界面浏览器 w3m(转)
最近找到了几个linux终端下使用的浏览器,主要用来测试本机web服务器是否搭建成功.因为我们一般是用ssh客户端连接linux的,所以很需要一个字符界面的浏览器.找了几个显示都不理想,只有w3m用起 ...
- imagick获取图片的大小bug
<? php /* imagick的获取图片的高度和宽度函数有问题,使用GD函数可获得正确结果 gd函数 array getimagesize ( string $filename [, arr ...