!htrace 分析句柄泄露

方法比较简单

但是可能是无效的,所以药做好心里准备

 

启动进程,然后WinDBG附加到进程,断下来

 

1:输入命令  !htrace -enable

  告诉 WinDBG ,准备开始做句柄检测了

2:输入命令 !htrace -snapshot

  告诉 WinDBG,创建一个句柄快照,以当前点为记住点做检测

 

 

3:程序放行

 

4:感觉差不多了,程序断下来

  输入命令 !htrace -diff

  WinDBG就开始比较句柄了

  输入乱七八糟一堆调用栈,

  运气好的话,可能会输出到程序关键字的调用栈,运气不好,就一个一个分析吧。

 

 

运气确实不好,但是之少可以看到是 CreateEventEx 函数创建的句柄。

 

且能看到线程ID,根据线程ID,去找线程入口点,

根据线程入口点,分析代码中的函数,

之少可以缩小范围吧。

 

(没有调用栈的原因很可能是我的程序是个Release 程序,开了优化,但是大多数的时候调试的都是优化过的)

 

!handle 只能看到句柄信息列表,想要分析每个句柄,这个功能有点难。

posted @   穷到底  阅读(214)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示