gpt4 book ai didi

c++ - 可以报​​告哪些类型的误报内存泄漏?

转载 作者:搜寻专家 更新时间:2023-10-31 02:00:58 27 4
gpt4 key购买 nike

当您使用某种“工具”(例如 WinDbg、GlowCode 甚至集成的 Visual C++ 泄漏报告器)查找内存泄漏时,可以报告哪些类型的误报?

事实上,GlowCode 会警告您不要误报。根据您运行的扫描类型,可能会出现更多误报。

有了这个问题,我想弄清楚 GlowCode 扫描器与 WinDbg 的 !heap -l 相比如何...

如果您能提供任何提示,我将不胜感激!

更新:如果您能用 C++(或您喜欢的语言)提供一些真实示例,那将大有帮助。

最佳答案

内存调试器的一般方法是在程序退出时报告所有分配的内存。此内存可能会泄漏,但它可能只是为应用程序的整个生命周期分配的内存,并且从未显式释放(这本身就是一个有问题的编程实践)。

其他工具(例如静态分析器)尝试匹配分配/释放调用或某些编程模式。例如,如果您分配内存并调用可以在没有 try block 的情况下抛出异常的函数,MS prefast 工具将向您发出警告。这将是误报的一种情况是,分配的对象在其父对象被销毁时被自动删除。

关于c++ - 可以报​​告哪些类型的误报内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1299809/

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