写点什么

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

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

关注

评论

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

淘宝商品销量数据爬取丨淘宝API接口技术

tbapi

淘宝商品评论接口 天猫商品评论接口 天猫评论API接口 淘宝评论API接口

服务器卡顿,打开文件卡住的原因有哪些

德迅云安全杨德俊

Brc20钱包横评推荐:谁更适合玩铭文?

股市老人

WorkPlus企业内部即时通信新选择,打造高效协作新格局

BeeWorks

梅开二度:我在VS Code上又写了一个Hive&Spark SQL的插件

泊浮目

vscode Sparksql 插件 Hive SQL spark SQL

聚道云软件连接器助力知名企业,提升合同管理效率

聚道云软件连接器

案例分享

WorkPlus卓越的即时通讯工具,助力企业提升工作效率

BeeWorks

淘宝店铺所有商品数据接口丨淘宝API接口

tbapi

淘宝API接口 淘宝店铺所有商品数据接口 天猫店铺所有商品数据接口

精彩推荐 |【Java技术专题】「重塑技术功底」攻破Java技术盲点之剖析动态代理的实现原理和开发指南(上)

码界西柚

Java 后端 JDK 动态代理 CGLIB 动态代理 2024年第九篇文章

掌握用户心理:通过ClkLog打造精准用户画像(上)

ClkLog

掌握用户心理:通过ClkLog打造精准用户画像(下)

ClkLog

缓存架构带来的甜与苦

薛以致用

Programming Abstractions in C阅读笔记:p246-p247

codists

【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)

码界西柚

Docker Linux 容器 Dockerfile 2024年第十篇文章

文心一言 VS 讯飞星火 VS chatgpt (178)-- 算法导论13.4 1题

福大大架构师每日一题

福大大架构师每日一题

BRC20通证的深度科普:它的潜力与如何导入到bitget

股市老人

按键开关机的锂电池充放电解决方案

芯动大师

深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

小万哥

Python 数据库 程序人生 软件工程 后端开发

CnosDB的数据更新和删除

CnosDB

开源 时序数据库 tsdb CnosDB

埋点分析系统怎么恢复丢失的数据并更新?ClkLog来支招

ClkLog

开源 数据分析 埋点 用户画像 埋点分析

平台工程与安全

俞凡

DevOps DevSecOps 平台工程

亚马逊工程师如何将现有超大规模 NoSQL 数据库改造支持大规模分布式事务?

薛以致用

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