当前位置:  开发笔记 > 编程语言 > 正文

使用Win32 C++检测文件句柄泄漏

如何解决《使用Win32C++检测文件句柄泄漏》经验,为你挑选了2个好方法。

是否有某种方法可以在程序终止时检测文件句柄泄漏?

特别是我想确保所有创建的句柄都在代码中释放.

例如,我可能在某个地方有一个CreateFile(),在程序终止时,我想检测并确保所有这些都关闭.



1> Joris Timmer..:

如果可以的话(即如果它不是一个巨大的遗留代码库,你就是错误修正),你应该考虑使用RAII成语来包裹你的文件句柄.通过在构造函数中"获取"文件句柄并在析构函数中释放它,您可以确保在RAII超出范围时,您的文件句柄也可以很好地清理.

它与智能指针的原理相同,在您的工具箱中有一个非常有用的概念,可以避免C++中的这类问题.



2> Vivian De Sm..:

我使用了windbg的!htrace命令.

!htrace -enable
!htrace -snapshot
!htrace -diff

允许您比较两个执行点的句柄情况,并帮助您找到已分配泄漏句柄的位置.

它对我很有用.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有