!htrace 分析句柄泄露

方法比较简单

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

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

1:输入命令  !htrace -enable

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

2:输入命令 !htrace -snapshot

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

3:程序放行

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

  输入命令 !htrace -diff

  WinDBG就开始比较句柄了

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

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

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

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

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

之少可以缩小范围吧。

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

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

原文地址:https://www.cnblogs.com/suanguade/p/14031151.html