50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

YashanDB|表数据不多,LOB 段却疯狂膨胀?小心踩到这颗“隐形炸弹”!

数据库砖家

数据库

YashanDB|执行 SQL 报 YAS-04401?小心 BLOB 字段踩坑!

数据库砖家

数据库

数据要素如何驱动的新质IDC一体化运营体系发展?

郑州埃文科技

硬件加密+本地部署,大模型一体机如何打造AI安全护城河?

郑州埃文科技

一文搞懂SaaS架构建设流程:业务战略设计、架构蓝图设计、领域系统架构设计、架构治理与实施

量贩潮汐·WholesaleTide

架构 SaaS

SeaTunnel 2.3.9同步Oracle数据至Doris出现乱码?别慌,这么做

白鲸开源

大数据 数据同步 数据集成 Apache SeaTunnel

「器」感:锻造AI时代工业数据底座,激活设备智慧生命力

麦杰研究院

工业数据

YashanDB|主备延迟怎么排查?这份实用指南收藏好!

数据库砖家

数据库

拒绝焦虑?飞算 JavaAI 一键生成完整工程代码,让你专注架构设计

飞算JavaAI开发助手

BeeWorks企业内部即时通讯软件支持国产化,已在鸿蒙系统上稳定运行

BeeWorks

即时通讯

「器」感:锻造AI时代工业数据底座,激活设备智慧生命力

麦杰科技

实时分析利器|全面解读 YashanDB 列式存储引擎的核心技术

数据库砖家

数据库

从 Spring Boot 到 AI 原生:下一代 Java 开发工具的五大趋势

飞算JavaAI开发助手

推荐私有化部署的企业内部通讯软件BeeWorks

BeeWorks

即时通讯

开发者必备:2025 年主流 AI 工具推荐

飞算JavaAI开发助手

数据要素与居民就业的深层联结 数字化转型下的劳动力市场变革

郑州埃文科技

YashanDB自研的力量|为共享集群量身打造的存储服务 YFS

数据库砖家

数据库

技术干货|YashanDB + Zabbix 打造可视化监控平台,实操教程来啦!

数据库砖家

数据库

Java 开发如何用 AI 工具处理分布式事务?飞算 JavaAI 自动生成高可用代码

飞算JavaAI开发助手

某知名半导体公司AIOps 培训圆满收官, 助力行业运维升级

雅菲奥朗

AI AI 人工智能

AI求职神器JobLeap.cn:技术人必备的全方位职业发展助手

Y11

面试 找工作 招聘 找实习

人工智能工程师(中级)培训开课通知

雅菲奥朗

人工智能 AI

C++部署的性能优化方法

地平线开发者

自动驾驶; 算法工具链 地平线征程6

算力重塑农业科研生态——华中农业大学高性能计算平台样板点现场会成功举办

极客天地

数据要素×一体机大模型 解锁银行资产评估新范式

郑州埃文科技

什么是公共数据?公共数据开放后如何提高新质生产力发展?

郑州埃文科技

YashanDB|修改字段长度后接口报 YAS-04007?背后真相是这个!

数据库砖家

数据库

Java 开发者的 AI 内卷指南:用工具自动补全 90% 代码!

飞算JavaAI开发助手

用远程代理模式轻松实现远程服务调用,打开编程新大门

不在线第一只蜗牛

远程代理

从架构原理到落地实践: Apache SeaTunnel×Cloudberry数据集成全解读

白鲸开源

大数据 数据同步 数据集成 Apache SeaTunnel

YashanDB 知识库|DBeaver 连接不上数据库?一招教你排查!

数据库砖家

数据库

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