写点什么

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

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

关注

评论

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

架构实战营 - 模块 7- 作业

泄矢的呼啦圈

架构实战营

1.4如何做好架构设计

Lemon

模块一作业

seawolflin

架构实战营

快手处置多个违规账号:自媒体行业需要净化和规范

石头IT视角

架构实战营模块一作业

一个字

#架构实战营

碳中和的未来版图里,区块链如何“往上走”

CECBC

业务架构模块 7 作业

冬天的树

架构训练营模块1作业

慕溶枫

#架构实战营

王者荣耀商城异地多活架构设计

Vincent

架构训练营

王者荣耀商城异地多活架构设计

贯通

架构实战营

Go 并发编程-共享变量

Rayjun

Go 语言

2021 年第 26 周 ARTS 打卡

Bryan

redis 网络 ARTS 打卡计划 归并排序 epoll

聊聊客户数据平台(CDP)建设

水滴

CDP 精细化运营 客户数据 用户标签 用户生命周期

王者荣耀商城异地多活架构

白发青年

架构实战营

模块七:课后作业

Geek_9cf7b5

Hadoop知识点总结

五分钟学大数据

hadoop 7月日更

模块7作业 王者荣耀商城异地多活架构设计

高亮

架构训练营

架构实战营-模块7-作业

大可

王者荣耀商城异地多活架构设计分析

俞嘉彬

架构实战营

定义全局Git Hooks和自定义Git Hooks

DoneSpeak

git Shell

架构实战营 - 模块7 - 作业

笑春风

区块链到底是什么?解读区块链的4大核心组件

CECBC

建立区块链证据采信新规则

CECBC

模块7作业

薛定谔的指南针

架构实战营

通过Git Hook关联Tapd和Commit

DoneSpeak

git Shell

在Git项目中使用pre-commit统一管理hooks

DoneSpeak

Python git Shell

模块7作业-王者荣耀商城异地多活架构设计

En wei

架构实战营

送给正在迷茫的你!极其重要

欢喜学安卓

android 程序员 面试 移动开发

gk-module1

泰戈

【LeetCode】 错误的集合Java题解

Albert

算法 LeetCode 7月日更

在Git项目中使用husky统一管理hooks

DoneSpeak

git

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