写点什么

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

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

关注

评论

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

数字化转型背后的 TiDB(地产行业)

TiDB 社区干货传送门

实践案例

TiDB 海量 region 集群调优实践

TiDB 社区干货传送门

性能调优 管理与运维

PD 三类选主流程梳理

TiDB 社区干货传送门

TiDB 底层架构

浅谈 TiDB 初始化系统库过程

TiDB 社区干货传送门

性能调优 TiDB 底层架构

使用Zabbix监控TiDB(二)

TiDB 社区干货传送门

监控

tikv下线Pending Offline卡住排查思路

TiDB 社区干货传送门

故障排查/诊断

如何理解TiDB允许广义上的幻读

TiDB 社区干货传送门

TiDB 底层架构

TiDB集群之中控不可用,怎么办?

TiDB 社区干货传送门

管理与运维 故障排查/诊断

高可用测试:KILL TiKV-Server,事务 TPS 掉零现象解读

TiDB 社区干货传送门

血泪教训 TiKV多副本丢失unsafe-recover恢复记录

TiDB 社区干货传送门

故障排查/诊断

【喜大普奔】zabbix 能监控 tidb 集群了 && tidb 能存储 zabbix 监控数据了

TiDB 社区干货传送门

监控

TiDB 5.0 VS MySQL 8.0 性能对比测试

TiDB 社区干货传送门

版本测评

TiDB 5.0 部分新特性试用

TiDB 社区干货传送门

版本测评 新版本/特性发布 性能测评

在x86和arm混合部署架构下排查TiKV节点内存占用极高的问题

TiDB 社区干货传送门

性能调优 故障排查/诊断

这么多TiDB负载均衡方案总有一款适合你

TiDB 社区干货传送门

实践案例 管理与运维

TiDB 5.0 在TPCH和SSB基准测试下OLAP方面的能力表现

TiDB 社区干货传送门

版本测评

TiKV 多副本丢失的故障修复演练

TiDB 社区干货传送门

故障排查/诊断

TiDB 5.2 发版 ——“交易+分析”双引擎提速,挑战极限业务场景

TiDB 社区干货传送门

新版本/特性发布

数据库架构升级选型 - TiDB

TiDB 社区干货传送门

数据库架构选型

TiDB 在 OPPO 准实时数据仓库中的实践

TiDB 社区干货传送门

实践案例

TiDB 性能优化实践

TiDB 社区干货传送门

性能调优 性能测评

Prometheus 中 histogram_quantile 函数相关的若干问题

TiDB 社区干货传送门

监控

TiDB大规模节点下线实践

TiDB 社区干货传送门

性能调优

TiDB备份实现

TiDB 社区干货传送门

管理与运维

网易游戏 Flink on TiDB 实时数据业务实践

TiDB 社区干货传送门

实践案例

TiKV 多副本丢失以及修复实践

TiDB 社区干货传送门

实践案例

【案例】汽车之家 - 一次业务优化解决读写冲突的案例,提升 5 倍性能

TiDB 社区干货传送门

性能调优

陆金所金融核心场景数据库的去 O 之路

TiDB 社区干货传送门

实践案例

TiUP cluster 用到的三个账户

TiDB 社区干货传送门

安装 & 部署

悲观事务死锁检测

TiDB 社区干货传送门

TiDB 底层架构

PD 客户端源码分析

TiDB 社区干货传送门

安装 & 部署

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