写点什么

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

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

关注

评论

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

架构实战营毕业总结(第 5 期)

唐尤华

架构实战营

聊聊最近比较火的一款Web3.0应用(25/100)

hackstoic

区块链 gamefi Web3.0 stepn Play2Earn

Spring Boot 整合Dubbo + Zookeeper 实现分布式 消费者与服务者的业务调用

Bug终结者

Java dubbo springboot

mysql的FIND_IN_SET group_concat 函数

Rubble

MySQL 4月日更

设计电商秒杀系统

唐尤华

架构实战营

作业七

Geek_f3e842

架构实战营

读《A Philosophy of Software Design》(01-07)

术子米德

架构师成长笔记

【图解数据结构】栈全面总结

知心宝贝

c++ 数据结构 算法 4月月更

Linux驱动开发-安装驱动参数传递

DS小龙哥

4月月更

云原生时代如何用 Prometheus 实现性能压测可观测-Metrics 篇

阿里巴巴云原生

明道云如何实现银行内部评级管理

明道云

Rust的对象安全性

Shine

rust

阿里云OSS图床搭建

懒时小窝

阿里云 OSS 图床

关于线程池,面试的时候你时候还打怵,这里我有话要说保证让你对线程池的各个参数一边就懂

派大星

线程池

通过npm+Vant Weapp 构建微信小程序

kcnf

Spinner: 往Pinterest新工作流平台的大规模迁移

俞凡

架构 工作流引擎 大厂实践 Pinterest

Spring容器的灵魂

IT巅峰技术

Spring 框架漏洞

使用 fluro 转场动画优化页面跳转体验

岛上码农

flutter 移动端开发 安卓开发 4月月更 苹果开发

Bigdata作业 第五周

Pyel

分布式链路追踪

yuexin_tech

链路追踪

WEB3的DAO生态服务平台,SeekTiger展现新的契机

小哈区块

RocketMQ—Producer(二)路由动态更新

IT巅峰技术

Apache RocketMQ

通达快递系统设计

peter

大话后端开发的奇技淫巧大集合

SFLYQ

架构 Web 后端 服务端 经验分享

MapReduce 学习思考

en

mapreduce

剑指Offer之面试题57: 和为s的数字

宇宙之一粟

算法刷题 4月月更 剑指Offer

maven工具的使用

Rubble

4月日更

Kubernetes官方java客户端之七:patch操作

程序员欣宸

4月月更

兑现 Service Mesh 的新价值:精确控制“爆炸半径”

阿里巴巴云原生

Spring容器的核心组件

IT巅峰技术

通达系统架构设计文档

小锅米线

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