写点什么

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

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

关注

评论

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

详解 ZooKeeper 数据持久化

HelloGitHub

Java zookeeper ZooKeeper原理

这可能是今年最值得入手的一本思维导图书

博文视点Broadview

京东M-PaaS平台之Android组件化系统私有化部署改造实践

京东科技开发者

系统架构 mPaaS

防火墙双机热备

随便说说“借鉴”那些事「Day 26」

道伟

28天写作

产品的基准线:确定性的产品

boshi

产品设计 研发管理 七日更

图像基本概念,Python 图像算法取经之旅 365 天的第 2 天

梦想橡皮擦

28天写作 3月日更

高斯 Redis 在IM场景中的应用

华为云开发者联盟

数据库 IM 华为云 GaussDB(for Redis)

高效使用Chrome浏览器,你可能不知道的10个技巧。

彭宏豪95

chrome 效率 浏览器 使用技巧

万象:百度的海量多媒体信息处理系统

百度开发者中心

#富媒体# #信息系统#

MindSpore学习(一)

依旧廖凯

28天写作 3月日更

Swagger 常用注解

insight

swagger 3月日更

鲸品堂开篇

鲸品堂

行业资讯 通信 科技

有道精品课实时数据中台建设实践

有道技术团队

大数据

化蛹成蝶,华为云DevCloud助力互联网+转型,重构钢铁产业链

华为云开发者联盟

Scrum 代码 华为云 devcloud 敏捷管理

zookeeper的数据模型详解

大数据技术指南

大数据 zookeeper 28天写作 3月日更

飞桨刷新分子性质预测榜单,助力AI药物研发

百度大脑

百度 AI 飞桨

数仓集群管理:单节点故障RTO机制分析

华为云开发者联盟

GaussDB 集群 GaussDB(DWS) RTO 单节点故障

篮下有球-用例2

z

NA公链双重隐私技术为NAC公链护航涅磐

区块链第一资讯

区块链 公链 挖矿

翻译:《实用的Python编程》06_03_Producers_consumers

codists

Python

EGG公链——ETFalk开启了新一代去中心化社交革命

币圈那点事

智汇华云 | ArcherOS Stack共享存储虚拟化技术剖析

华云数据

有意义的选择——初谈心流

Justin

心理学 28天写作 游戏设计

面试官:线程池中多余的线程是如何回收的?

Java小咖秀

Java 面试 多线程

SD-RTN——毫秒级网络加速带来全新的体验

anyRTC开发者

android 5G 音视频 WebRTC RTC

比电脑屏保还酷?在电脑桌面实时显示当前时间。

彭宏豪95

效率 效率工具 时间 应用 桌面时钟

5G与房地产

ES_her0

28天写作 3月日更

都在讲Redis主从复制原理,我来讲实践总结

华为云开发者联盟

数据库 redis 复制 服务器 非关系型数据库

Go训练营第4周总结

Glowry

密码学系列之:csrf跨站点请求伪造

程序那些事

安全 密码学 CSRF 程序那些事

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