写点什么

Rodney Viana 为.NET 调试开发的 WinDbg 扩展介绍

  • 2013-11-11
  • 本文字数:859 字

    阅读完需:约 3 分钟

当.NET 应用程序在产品环境中发生故障的时候,通常留给开发者的仅仅是一个内存 dump。因为 Visual Studio 不能处理 dump 文件,所以你必须使用一个名为 WinDbg 的工具。该工具通常会和 SOS.dll 或者 Psscor4.dll 一起使用,它们是能够暴露.NET 特定细节的扩展。尽管非常强大,但是它们非常难于使用,因此开发者偶尔会创建自己的扩展。 Rodney Viana 就是这样的一个开发者,他刚刚发布了 netext 1.6.1 并将该项目开源。

Netext 中的一个有趣功能是,它能够使用一种类似于 SQL 的语法查询堆。例如,假如你想要查看最近失败的 Web 请求的列表,因为 HttpContext 对象已经被缓存了,所以你能够使用下面的语法查看失败的查询:

复制代码
!wfrom -type *.HttpContext |
where ( ($contains(_request._url.m_String, "http:")) &&
(_response._statuscode != 0n200) )
select $addr(), _request._url.m_String, _response._statusCode

下面是支持的命令列表:

显示对象详细信息的命令

  • !wdo——显示 GAC 或者堆栈中的 ad-hoc 对象或者数组
  • !wselect——为数组中的一个对象或者所有条目显示 ad-hoc 字段(和 level 字段)
  • !wfrom——执行类似 SQL 的堆对象分析,支持比较、表达式评估和索引过滤

枚举对象

  • !windex——根据不同的过滤器索引并显示对象,例如 HttpContext 类型的对象
  • !wstack——转储唯一的堆栈对象
  • !wheap——列出没有索引的对象并显示堆样本
  • !wgchandles——转储 GC 根句柄

特殊用途

  • !wdict——显示 dictionary 对象
  • !whash——显示 HashTable 对象
  • !whttp——列出 HttpContext 对象
  • !wconfig——显示所有排列在内存中的.config 文件
  • !wservice——列出 WCF 服务对象
  • !weval——评估表达式列表
  • !wclass——显示“反射的”类定义(字段、属性和方法)

Netext 还支持能够和聚合、字符串、XML、数组和反射一起使用的功能

Netext 是基于 GNU 通用公共许可(GNU General Public License)版本 2 提供的。尽管 Rodney Viana 是 Microsoft 的一位雇员,但该项目是一个个人项目,Microsoft 并不为其提供支持。

查看英文原文 Introducing Rodney Viana’s WinDbg Extension for .NET Debugging

2013-11-11 07:281510
用户头像

发布了 321 篇内容, 共 133.4 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

等保合规是什么意思?怎么做?

行云管家

网络安全 等保 过等保 等保合规

云安全和传统安全有什么区别?又有什么关系?

行云管家

网络安全 数据安全 云安全

Vue响应式系统原理并实现一个双向绑定

yyds2026

Vue

长安链源码分析之网络模块 net-liquid(7)

华为架构师亲手操刀,世界五百强都在用的kafka也就那么回事

程序知音

Java kafka 架构 后端技术

30+场技术论坛 1000+科技新品发布 今年云栖大会我们关注什么?

阿里技术

云栖大会

分析服务用多维度、多场景的用户分层,带您深度玩转精细化游戏运营

HarmonyOS SDK

分析

SAP | abap的数据对象

暮春零贰

SAP 10月月更 数据对象

LP流动性质押挖矿dapp系统开发详情(案例演示)

开发微hkkf5566

随需应变,快速开发工作流

力软低代码开发平台

NFT卡牌链游系统开发Web3游戏技术

薇電13242772558

dapp web3

工作四年,靠这份Java面试宝典,跳槽到阿里,月薪直涨12K

收到请回复

Java 面试 语言 & 开发 金九银十

SUSE 推出业界首个自适应 Linux 平台原型

Anthony

Linux 自适应

navicat的使用与数据库的DML操作

渔戈

MySQL SQL语句 10月月更

Vue3的基本指令

渔戈

前端 Vue3 10月月更

文本识别与检测-【技术白皮书】第三章-第二节: 基于分割的场景文本检测方法

合合技术团队

人工智能 神经网络 文字识别 自然语言理解

Kubernetes fror Flink 硬气功实践

CTO技术共享

flink 个人成长 10月月更

EMQ x 阿里云:云上高效构建,IoT 数据一站处理|直播预告

阿里云弹性计算

物联网 IoT 计算巢

长安链源码分析之网络模块 net-liquid(5)

长安链源码分析之网络模块 net-liquid(6)

手把手完成智慧路灯的开发,完成设备上云【华为云IoT】

DS小龙哥

10月月更

开源日志收集 肿么选型??

CTO技术共享

个人成长 log 10月月更

邂逅Vue3

渔戈

前端 Vue3 10月月更

秒云入选2022年成都市新经济梯度培育企业

MIAOYUN

成都市新经济梯度培育企业

Vue模板是怎样编译的

yyds2026

Vue

Vue组件是怎样挂载的

yyds2026

Vue

ElasticSearch + Kibana for Kubernetes 硬气功实践 2

CTO技术共享

elasticsearch 个人成长 10月月更

Rodney Viana为.NET调试开发的WinDbg 扩展介绍_.NET_Jonathan Allen_InfoQ精选文章