我目前正试图追踪一个GDI句柄泄漏。我目前正在使用GDIView来跟踪它。该工具将GDI对象划分为类别:钢笔、ExtPen、位图、字体、调色板、区域、DC、元文件DC、增强型元文件DC和其他GDI。这些类别相加在一个名为GDI总计的列中。除此之外,还有一个名为All GDI的列。就在这一栏里,我正在探测泄漏。
因为我没有这个工具的源代码,所以我看不出到底是怎么回事。工具的作者错过了一个句柄类型吗?看上去很像。我知道有一个漏洞,因为一些用户报告说,他们被显示了臭名昭著的对话框A所需的资源是(文本的结尾)。对话框可能需要几个星期才能显示出来,所以我很确定它不是DC。
任何想法,如何跟踪这将是非常感谢!由于我有有限的预算,千元工具是不可能的。将钩子调试到GDI中就足够了,因为我不介意做侦探工作。
发布于 2011-07-25 08:06:14
我发现了问题。显然,GDIView认为图标属于未知类别。问题是正在加载图标并将其附加到对象上。该对象未设置为在销毁时自动删除图标。给那个工具的作者发邮件.
发布于 2011-07-25 08:02:36
有一次,我遇到了类似的问题,我使用任务管理器( Task ),让它显示每个进程的GDI句柄计数,并跨过程序代码,查看句柄计数意外增加的位置,并未能返回。这花了一些时间,但最后我发现了这个错误。
https://stackoverflow.com/questions/6813188
复制相似问题