Mic*_*ick 6 c windows-xp visual-studio-2008
我在一个大的旧程序中有一个句柄泄漏.使用sysinternals handle.exe我推断出泄漏的句柄类型是一个"事件"句柄.但是我不确定我应该看看我的代码的哪些部分.是否有一个返回事件句柄的函数列表?
编辑:整个程序中没有CreateEvent,CreateEventEx或OpenEvent的单个实例.
您看到了多少这些泄露的手柄?
事件是由关键部分隐式创建的(请参阅InitializeCriticalSection等),可能还有一些我目前不记得的其他 Win32 元素。此外,它们可以由您正在使用的框架(如果有)(例如 MFC)或您正在使用的库创建。
要追踪泄漏,您可以使用仅打印断点。进入 CreateEvent 函数(使用程序集视图)并在其第一条指令上放置断点。然后右键单击断点,选择“When Hit...”并编辑选项,这样它就不会中断到调试器,但会打印一些有用的信息(例如,请参阅 $CALLER 宏)。然后运行您的应用程序...并准备好看到巨大的日志。如果确实存在泄漏,您将在日志中看到重复模式,该模式可识别违规者。
归档时间: |
|
查看次数: |
7986 次 |
最近记录: |