写点什么

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

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

关注

评论

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

【LeetCode】和相同的二元子数组Java题解

Albert

算法 LeetCode 7月日更

高级码农设计的程序能解耦,是多么重要的一件事情!

小傅哥

spring 设计模式 小傅哥 观察者模式 系统解耦

打造中国数字军人 数军科技携黑科技亮相军博会

科技热闻

Python 绑定:从 Python 调用 C 或 C++

华为云开发者联盟

c c++ Python 函数 Python 绑定

Pandas高级教程之:统计方法

程序那些事

Python 数据分析 pandas 程序那些事

如何用EasyRecovery 快速找回误删的截图

淋雨

EasyRecovery 文件恢复 硬盘数据恢复 固态硬盘数据恢复

TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?

小林coding

计算机网络 HTTP TCP/IP

研发管理和项目管理有哪些痛点?

万事ONES

研发管理 ONES 项目管理工具

互联网公司的「敏捷开发」流程是怎么样的?每个职位的角色和分工是什么?

万事ONES

union 分页/group/join 复杂查询(.net core/framework)

Spook

sql ORM

替换 Spring Cloud,使用基于 Cloud Native 的服务治理

火山引擎开发者社区

云原生 后端 Service Mesh 服务网格

不藏了,这些Java反射用法总结都告诉你们

华为云开发者联盟

Java JVM 反射 java框架 MyBase

Swarm节点系统开发|Swarm节点APP软件开发

拖延背后的故事

卢卡多多

拖延症 7月日更

DGTT挖矿智能合约系统软件开发案例

我给我讲GIT,并成功把我得罪了

加百利

git 7月日更

云图说|华为HiLens云上管理平台,花样管理多种端侧设备

华为云开发者联盟

AI 华为云 云图说 华为HiLens EI智能体

FIL挖矿怎么样?FIL挖矿靠谱吗?

Vchat挖矿软件开发|Vchat挖矿系统APP开发

DolphinDB插件开发深度解析

DolphinDB

数据库 大数据 时序数据库 插件开发 DolphinDB

HVC矿机系统开发|HVC矿机软件APP开发

多媒体技术(一)之图形图像

轻口味

android 音视频 计算机图形学 图形图像处理

并发王者课-铂金9:互通有无-Exchanger如何完成线程间的数据交换

MetaThoughts

Java 多线程 并发

《大数据大创新:阿里巴巴云上数据中台之道》:解密阿里数据中台建设

云祁

大数据 读书笔记 数据中台 7月日更

领哆哆APP开发|领哆哆软件系统开发

计算机时间到底是怎么来的?程序员必看的时间知识!

Kaito

操作系统 计算机基础 时间 ntp

萌宠大陆APP开发|萌宠大陆系统软件开发

Redisson 分布式锁源码 06:公平锁排队加锁

程序员小航

Java redis 分布式锁 redisson

小马哥的Java项目训练营-毕业总结

姑射仙人

如何利用极狐GitLab CI提高生产力?

极狐GitLab

ci

百度交易中台之商品推广流程构建以及实现

百度Geek说

中台 软件架构 电商 交易

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