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 ...
随机推荐
- Andrew Stankevich's Contest (1)
Andrew Stankevich's Contest (1) 打一半出门了,回来才补完了...各种大数又不能上java..也是蛋疼无比 A:依据置换循环节非常easy得出要gcd(x, n) = 1 ...
- MapReduce 规划 六系列 MultipleOutputs采用
在前面的示例,输出文件名是默认: _logs part-r-00001 part-r-00003 part-r-00005 part-r-00007 part-r-00009 part-r-00011 ...
- 2013成都邀请赛J称号||HDU4725 The Shortest Path in Nya Graph(spfa+slf最短的优化)
职务地址:HDU 4725 这题卡了好长时间了,建图倒是会建,可是不会最短路的算法优化,本以为都须要堆去优化的,打算学了堆之后再来优化.可是昨晚CF的一道题..(那题也是不优化过不了..)然后我就知道 ...
- VisualStudioOnline协同工作流程
VisualStudioOnline协同工作流程 项目负责人登陆自己的vsonline新建项目就不多说了. 直接从邀请队友开始 项目负责人操作 被邀请的邮箱必须是微软的邮箱(也就是可以登录visual ...
- 存储数据键和项目对的类(Dictionary对象)
存储数据键和项目对的类(Dictionary对象) <% Class Dictionary Public Copyright, Developer, Name, Version, Web Pri ...
- MySQL存储过程:用户授权量
写这些脚本需求放缓的调查记录到数据库,方便观看. 1. 因为默认mysql.slow_log表使用csv数据引擎,该数据不支持指数,因此,有必要改变MyISAM发动机.和query_time字段索引, ...
- SQL优化策略高级优化经常使用-1(The Return Of The King)
1 经常使用的优化策略 1.1 语句 1.1.1使用实际的列名 当我们查询SQL语句时.你是否觉得使用实际的列名比使用*更快呢?答案是肯定的. 为了证实这一点,感兴趣的朋友能够自己验证一下.我这 ...
- python 性能- and-or 学习技能
C语言类似表情: bool ? a : b ,当表达式值为真的话,值为a.否则为b. 看一个样例: >>> a = "first" >>> b ...
- POJ2195 Going Home 【最小费用流】+【最佳匹配图二部】
Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18169 Accepted: 9268 Descr ...
- apache kafka系列之-监控指标
apache kafka中国社区QQ群:162272557 1.监控目标 1.当系统可能或处于亚健康状态时及时提醒,预防故障发生 2.报警提示 a.短信方式 b.邮件 2.监控内容 2.1 机器监控 ...