写点什么

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

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

关注

评论

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

Milvus×Florence:一文读懂如何构建多任务视觉模型

Zilliz

微软 计算机视觉 Milvus 向量数据库 Florence

软件测试丨Pytest生命周期与数据驱动

测试人

软件测试

如何评估测试工时?

老张

项目管理 软件测试 需求管理

即时通讯技术文集(第44期):微信、QQ技术精华合集(Part1) [共14篇]

JackJiang

即时通讯;IM;网络编程

基于Sermant实现xDS服务网格,获取15+倍更高性能和更低成本

华为云开源

开源 微服务治理

TiDB 助力北京电信夯实电信账务系统的数据底座

PingCAP

数据库 TiDB

GeneMind 公司的 GenoLab M 测序平台 WGS 和 WES 数据基准测试

INSVAST

基因测序 基因数据分析 生信服务 生信分析 Sentieon

选择好的数据产品应当避免的六大坑|StartDT Talk

奇点云

大数据

如何降低大模型训练与推理计算成本,以确保它们在软件研发中的有效应用?

思码逸研发效能

DevOps 研发效能 大模型 AI 基础设施 思码逸

昆仑万维「天工大模型4.0」o1版(Skywork o1)正式启动邀请测试

新消费日报

GreatSQL 自动开启复制导致同步报错

GreatSQL

CRISPR-detector:快速、准确地检测、可视化和注释基因组编辑事件引起的全基因组范围突变

INSVAST

基因测序 基因数据分析 生信服务 生信分析 Sentieon

API 之旅的三个阶段

NGINX开源社区

读书笔记 最佳实践 API

PHP 互斥锁:如何确保代码的线程安全?

左诗右码

RAG搭建中,如何选择最合适的向量索引?

Zilliz

向量数据库 rag 向量索引

火山引擎VeDI在AI+BI领域的演进与实践

字节跳动数据平台

Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践

阿里云大数据AI技术

人工智能 最佳实践 PAI Qwen2.5-Coder

开放创新,释放云上生产力 | 2024华为云开源开发者论坛盛大开启,邀您相约上海

华为云开发者联盟

开源 大会

新技术架构给集团企业身份管理体系带来的挑战

芯盾时代

身份安全 iam 数字化经济

揭秘可观测利器:腾讯云 APM 深度融合 OpenTelemetry 和 Prometheus,助力高效指标采集与处理

腾讯云可观测平台

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