硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

关注

评论

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

朋友吐槽我为什么这么傻不在源生成器中用string.GetHashCode, 而要用一个不够优化的hash方法

八苦-瞿昙

dotnet

探索一下 Enum 优化

八苦-瞿昙

dotnet

Kubernetes 节点问题可观测最佳实践

观测云

Kubernetes

9岁小学生、51岁退休阿姨闯入百度英伟达AI大赛

极客天地

让查询可以使用 json path

八苦-瞿昙

dotnet

Mysql中常用函数 分组,连接查询

不在线第一只蜗牛

MySQL 数据库

大模型时代,云原生数据底座的创新和实践

Baidu AICLOUD

数据库 大数据

扬帆出海!九章云极DataCanvas公司惊艳亮相迪拜GITEX Global 2024

九章云极DataCanvas

通义灵码上线一周年:超 600 万下载量,国内用户规模第一,新功能有奖测评

阿里云云效

阿里云 云原生 通义灵码

李彦宏眼中的AI之路:泡沫不可避免,要成为1%

脑极体

AI

图解ArrayDeque数据结构设计与应用案例

肖哥弹架构

Java 容器 数据结构

尝试让查询更简单

八苦-瞿昙

dotnet

鸿蒙应用示例:记录小规模真机内测方案

zhongcx

使用ETL进行数据接入的方式

谷云科技RestCloud

ETL 数据集成 数据接入 数据同步工具

用友BIP超级版:成都公交数智化的核心引擎

用友BIP

高清图解28个高并发之数据结构/数据结构场景匹配技巧分析(高并发精通篇三)

肖哥弹架构

Java 容器 数据结构

从循序渐进转型到AI创新探索,天顺风能数智化走稳每一步

用友BIP

亮相QCon2024,火山引擎边缘云揭秘云原生操作系统与HTTPDNS技术实践

火山引擎边缘云

云原生 边缘计算 DNS 云 原生云 CTO #DNS

敏捷工具助力团队高效运作实践

顿顿顿

Scrum 敏捷开发 敏捷管理 敏捷项目管理

SourceGenerator 生成db to class代码优化结果记录 二

八苦-瞿昙

dotnet

弘扬传统文化,百度百科AI非遗馆亮相中国非物质文化遗产博览会

极客天地

“好房子”的智能化探索,华为和保利为行业做了示范

Alter

线上事故风险解读之规范篇

巧手打字通

深度思考 后端 开发规范 构架 事故复盘

c#12 实验特性Interceptor如何使用的一个简单但完整的示例

八苦-瞿昙

dotnet

解锁用户体验的深层法则:从定律到卓越设计的实践之旅

inBuilder低代码平台

UX 用户体验

如何使用贝锐花生壳DDNS,实现OA、ERP、CRM等办公系统远程访问?

贝锐

远程运维

百度智能云千帆 ModelBuilder 大模型服务及开发解读

Baidu AICLOUD

LLMOps LMops

万界星空科技:智能称重打标系统

万界星空科技

mes 电子称重系统 万界星空科技 称重打标 称重

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