!htrace 分析句柄泄露
方法比较简单
但是可能是无效的,所以药做好心里准备
启动进程,然后WinDBG附加到进程,断下来
1:输入命令 !htrace -enable
告诉 WinDBG ,准备开始做句柄检测了
2:输入命令 !htrace -snapshot
告诉 WinDBG,创建一个句柄快照,以当前点为记住点做检测
3:程序放行
4:感觉差不多了,程序断下来
输入命令 !htrace -diff
WinDBG就开始比较句柄了
输入乱七八糟一堆调用栈,
运气好的话,可能会输出到程序关键字的调用栈,运气不好,就一个一个分析吧。
运气确实不好,但是之少可以看到是 CreateEventEx 函数创建的句柄。
且能看到线程ID,根据线程ID,去找线程入口点,
根据线程入口点,分析代码中的函数,
之少可以缩小范围吧。
(没有调用栈的原因很可能是我的程序是个Release 程序,开了优化,但是大多数的时候调试的都是优化过的)
!handle 只能看到句柄信息列表,想要分析每个句柄,这个功能有点难。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」