写点什么

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:281300
用户头像

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

关注

评论

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

软件研发团队如何管理成员工时,科学分配资源?

万事ONES

十分钟生成影视级室内设计效果,红星美凯龙设计云如何升级传统家居行业

阿里云弹性计算

gpu 智能家居 异构计算

项目越写越大,我是这样做拆分的

小鑫同学

项目架构 7月月更

【Docker 那些事儿】如何高效地搭建 Docker 私有仓库

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

排队助手 | 2022年6月产品更新日志

天天预约

微信小程序 SaaS应用 排队工具 便民服务

四个简单例子教你通过用户行为记录提高用户体验

观测云

在互联网+的潮流中,企业客户服务该何去何从?

Baklib

互联网+ 客户服务

Kafka Topic Partition Offset 这一长串都是啥?

华为云开发者联盟

后端 华为云

字节跳动数据质量动态探查及相关前端实现

字节跳动数据平台

字节跳动 数据监控 数据探查

零基础小白该如何选择web前端课程呢

小谷哥

web前端技术学习完后怎么找工作呢

小谷哥

5个开源组件管理小技巧

SEAL安全

安全 软件供应链 开源组件

深入揭秘 epoll 是如何实现 IO 多路复用的

C++后台开发

网络编程 epoll IO多路复用 C++后台开发 C++开发

字节跳动CVPR 2022多项目夺魁,获模拟人脑感知、长视频理解挑战双料冠军

字节跳动视频云技术团队

计算机视觉 图像处理 图片处理 视频理解 视频云

WhaleDI消息队列稳定性提升实践

鲸品堂

中间件

在web前端培训中怎么提升前端技术能力

小谷哥

Python异常知多少

迷彩

Python 异常处理 7月月更

快速构建企业级应用的开发平台

力软低代码开发平台

如何使用IDEA数据库工具连接TDengine?

TDengine

数据库 tdengine 时序数据库

通过 MSE 实现基于Apache APISIX的全链路灰度

阿里巴巴云原生

Apache 阿里云 微服务 云原生 灰度发布

零基础可以自学web前端技术吗

小谷哥

模块2作业

利用小程序运行时技术增强Flutter跨端开发属性

Speedoooo

flutter 小程序 移动开发 小程序容器

【技术人才懂的浪漫】TiDB 社区为你准备好了给另一半的“七夕节”礼物,回复:我要挑战,即可参与活动!

TiDB 社区干货传送门

SQL 改写系列六:谓词推导

OceanBase 数据库

Mria+RLOG新架构下的EMQX 5.0如何实现1亿MQTT连接

EMQ映云科技

物联网 IoT mnesia emqx 7月月更

数字藏品加速破圈,助力产业发现新机遇

智捷云

NFT 区块链数字藏品 数字藏品 智捷云 智捷云科技

关于Java&JavaScript中(伪)Stream式API对比的一些笔记

山河已无恙

Java stream JavaScrip

不同学习方式的web前端程序员有什么区别

小谷哥

C 语言入门(八)

逝缘~

7月月更

企业遇到知识管理困境该怎么办?这里有解决方案!

Baklib

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