获取每个线程打开的句柄数

Getting the number of handle open per thread

本文关键字:句柄 线程 获取      更新时间:2023-10-16

我担心我的组件泄漏了句柄。

我看到手柄的数量正在逐渐增加

使用句柄

实用程序,我能够找出句柄的数量和每个句柄的类型。看来我以某种方式泄漏了事件句柄。我根本不创建事件。也许某些基础导致事件句柄泄漏。为了缩小搜索范围,我想获取每个线程打开的句柄数。

我也尝试了windbg htrace(snapshot and diff)。无法获得有关我的线程的太多信息。是否有任何实用程序可以给我信息

  1. 每个线程或
  2. 打开的句柄的名称

不,事件句柄根本不与线程关联。 而且它们通常没有名称,仅在需要跨进程共享时才使用。

考虑在 CreateEvent() 上设置一个断点,这样你至少会知道从哪里开始查找。 调试 + 新断点 + 函数中断。 键入 __imp__CreateEventW@16 作为函数名称。 为以防万一,还要为 A 版本添加断点。 或者用_NtCreateEvent@20,调试符号来捕获它们。