写点什么

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

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

关注

评论

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

Flink 1.10 细粒度资源管理解析

Apache Flink

大数据 flink 流计算 实时计算

Web3极客日报#136

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

人生就是一场说走就走的旅行

kimmking

你觉得你是哪类人?

Janenesome

读书笔记 思考

回"疫"录(13):不信谣,不传谣

小天同学

疫情 回忆录 现实纪录 纪实 谣言

Web3极客日报#137

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

带你100% 地了解 Redis 6.0 的客户端缓存

程序员历小冰

redis 缓存 redis6.0.0

回文串解题记录

晓刚学代码

Java 算法

我的编程之路-3(熟练)

顿晓

c++ 调试 经历 项目 疑问

和儿子装一台 Hackintosh

苏锐

DIY Hackintosh 装机

个人的投资原则

史前靓仔

引入了绩效管理,团队反而一天不如一天了?(一)

Geek_6rptuk

团队管理 企业文化 绩效

我跑步的时候会想些什么

养牛致富带头人

跑步 运动 锻炼

Mac 自带软件-聚焦搜索

Winann

macos Mac spotlight

基于Serverless架构的Git代码统计

刘宇

谈一谈自由职业者的心态

Bob Jiang

自由职业 写作 心态 营销

(乱记)“怎样培养优秀孩子”

启润

【Howe 学 JAVA】Java 类集框架2——集合输出

Howe

Java 集合 输出 类集

CentOS7使用Iptables做网络转发

wong

Centos 7 iptables

MacOS使用指南之我并不需要系统菜单栏

lmymirror

macos 高效工作 完美主义 操作系统 新手指南

《CSS 选择器世界》读书笔记

云走

CSS Java html 读书笔记 大前端 张鑫旭

找到自己的领域,然后封神

一尘观世界

成长 提升 领域 机遇 趋势

抽象

落英亭郎

系统设计 面向对象 抽象

《Linux就该这么学》笔记(一)

编程随想曲

Linux

当你不知道怎么学习新技术时

石君

学习 方法论

裸机Ubuntu18.04 配置实现人脸识别的第三方库

月夜

dlib face_recognition 人脸识别 环境配置

可能是最最最最简单的搭建博客方法

彭宏豪95

GitHub 写作 博客 GitPress

Spring Boot可执行JAR的原理

小判

Spring Boot 类加载 Fat-JAR deflate JAR URL

TL如何在团队中培养出更多前端技术专家

贵重

大前端 团队建设 技术管理

云函数中使用Python-ORM: Peewee

刘宇

CTO股权”避坑“,你根本不知道我们多努力

赵新龙

TGO鲲鹏会 股权 CTO

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