gpt4 book ai didi

windows - 从故障转储中查找 GDI/用户资源使用情况

转载 作者:可可西里 更新时间:2023-11-01 13:22:30 25 4
gpt4 key购买 nike

我有一个据称泄漏 GDI 的应用程序的故障转储。该应用程序在 XP 上运行,我可以毫无问题地将它加载到 WinDbg 中进行查看。以前我们使用 Gdikdx.dll extension查看 Gdi 信息,但 XP 或 Vista 不支持此扩展。

有没有人知道如何在 WinDbg 中查找 GDI 对象的使用情况。

或者,我确实可以访问失败的程序(及其压力测试套件),因此如果您知道任何适用于 XP 和 Vista(或 Windows 2000,尽管这不是)的“实时”调试工具,我可以在正在运行的系统上重现我们的目标)。

最佳答案

上周我一直在研究 GDI 泄漏查找器工具。我们还定期执行压力测试,它不会持续超过一天的时间,而不会因用户/gdi 对象句柄过度消耗而停止。

据我所知,我的尝试非常成功。当然,我事先花了一些时间寻找替代和更快的解决方案。值得一提的是,我之前从上面提到的 msdn 文章中使用 GDILeaks 工具有一些半幸运的经历。更不用说在投入使用之前我必须解决一些问题,而这次它只是没有给我想要的东西和方式。他们方法的缺点是重量级调试器接口(interface)(它使研究目标的速度变慢了几个数量级,我认为这是 Not Acceptable )。另一个缺点是它不能一直工作——在某些运行中我根本无法让它报告/计算任何东西!它的复杂性(根据代码量判断)是另一个吓跑因素。我不是 GUI 的忠实拥护者,因为我相信在没有窗口的情况下我的工作效率更高;o)。我还发现很难让它找到并使用我的符号。

我在着手编写自己的工具之前使用的另一个工具是 leakbrowser .

无论如何,我最终决定采用迭代方法来实现以下目标:

  • 轻微的绩效处罚
  • 实现简单
  • 非侵入性(用于多种产品)
  • 尽可能多地依赖

我为核心功能(它是一个可注入(inject)的 DLL)使用了弯路(非商业用途)。将 Javascript 用于自动代码生成(15K 脚本生成 100K 源代码——我无法手动编写代码,也没有涉及 C 预处理器!)加上用于数据分析和快照/差异支持的 windbg 扩展。

长话短说 - 在我完成后,又花了几个小时在另一次压力测试中收集信息,再花一个小时来分析和修复漏洞。

我非常乐意分享我的发现。

附言我花了一些时间尝试改进以前的工作。我的意图是最大限度地减少误报(我在开发过程中看到了太多这样的误报),因此它还将检查分配/发布的一致性,并避免考虑从未泄漏的分配。

编辑:找到工具here

关于windows - 从故障转储中查找 GDI/用户资源使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/104122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com