速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

第二章:产品思维和产品意识(下) - 作业 - 为云 g

Weiyung

抽奖助手小程序 利益相关方排序及解决方案

Shine

产品

利益相关者排序

Geek_a32093

产品经理训练营第三周作业

happy-黑皮

产品经理训练营

【作业-03】解决方案的设计与积累

西西里奇

车载操作系统 (28天写作 Day26/28)

mtfelix

28天写作 车载操作系统 AOS QNX

offline app

lidaobing

28天写作 offline app

产品经理-第二周作业(2)

LLL777

week13 数据应用(二)

杨斌

产品经理训练营-第三周作业

玖玖

机器学习笔记之:最熟悉的陌生阵

Nydia

产品训练营-第三次作业

Geek_娴子

利益相关者的问题及方案

梁媛

关注产品的利益相关者,想想他们的问题,自己设定一些前提,做个简单的排序。

mas

03- 抽奖小助手的那个「谁」

学习高手song轻松

产品经理训练营 - 第二章作业 (二)

joelhy

产品经理训练营

28天瞎写的第二百三十六天:emacs 党的没落

树上

28天写作

VUCA时代-不敏捷就得死

Ian哥

28天写作

为您收录的操作系统系列-进程管理(上篇)

鲁米

操作系统 进程

管理笔记[5]:“态度”决定成败,是一切组织管理的前提

L3C老司机

产品训练营第三章-第一节小结

skylar

产品训练营·第三周作业 & 总结

tiu

第三周作业

BlueSky

即兴演讲的几种实用脚本

熊斌

读书笔记 28天写作

如果创意也可以被设计「幻想短篇 26/28」

道伟

28天写作

第三次作业及总结

青葵

学习

产品经理训练营第二章作业(二)

猫。

产品经理训练营--第三章作业

Lucas zhou

产品经理训练营

「产品经理训练营」作业 03

🌟

产品经理 产品经理训练营 产品经理训练

第 3 周作业

老元宵

开发质量提升系列:日常重视好投产,运维拍肩也不怕

罗小龙

最佳实践 方法论 28天写作 2月春节不断更

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