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 ...
随机推荐
- opengl微发展理解
1.什么是OpenGL? 一种程序,可以与界面和图形硬件交互作用.一个开放的标准 2.软件管道 请看上图 - Apllication层 表示你的程序(调用渲染命令.如opengl API) - ...
- 二元最近的共同祖先问题(O(n) time 而且,只有一次遍历,O(1) Space (它不考虑函数调用栈空间))
问题: 找到两个节点的二叉树的最近的共同祖先. 首先可以参考这个博客http://blog.csdn.net/cxllyg/article/details/7635992 ,写的比較具体,包含了节点包 ...
- CGI原理解析系列之中的一个----CGI怎样获取WEBserver数据
//gcc get_post.c -o get_post.ums; #include <stdio.h> #include <stdlib.h> #include <un ...
- 批量创建采购订单 BAPI_PO_CREATE1
*&---------------------------------------------------------------------* *& REPORT ZMM_PO_C ...
- Xenomai 3 和 PREEMPT_RT 有哪些优势相比,
Q: 我可以在我的开发板PREEMPT_RT直接在内核环境中执行POSIX应用, 使用Xenomai3 这是什么原因它? A:假设你的应用程序已经完全是POSIX,而且性能也满足,则,而且也没有理由去 ...
- tomcat内存溢出,改动设置
问题描写叙述: 1. java.lang.OutOfMemoryError: Java heap space JVM堆的设置是指java程序执行过程中JVM能够调配使用的内存空间的设置.JVM在启动的 ...
- ResourceBundle
ResourceBundle本质上也是一个映射,但是它提供了国际化的功能. 假设电脑设置的地区是中国大陆,语言是中文 那么你向ResourceBundle(资源约束名称为base)获取abc变量的 ...
- SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能
原文:SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能 上期回顾: SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环 博主最近新负责了一个ssis大项目的架构 ...
- unix cd使用命令
[语法]: cd [夹] [说明]:此命令用于工作文件以改变当前的文件夹,使用环境变量没有参数$HOME 作为它的参数,$HOME 路径通常在注册时输入. [抽样]: cd 文件夹 c ...
- NET使用了UpdatePanel后如何弹出对话框!
原文:NET使用了UpdatePanel后如何弹出对话框! 在ajax中的UpdatePanel弹出对话窗,可以使用: ScriptManager.RegisterStartupScript(Upda ...