如何追踪COM内存泄漏问题

7

我正在尝试追踪一个COM对象中的内存泄漏,但是我没有发现任何明显的问题。我可能在错误地使用一些COM包装器,但我的标准内存泄漏查找工具(AQtime)并不能帮助我解决COM问题。有人有什么技巧/工具可以追踪COM内存/引用泄漏吗?

2个回答

4
如果您正在使用ATL,您可以定义_ATL_DEBUG_INTERFACES(请参阅MSDN条目)。这肯定会帮助您捕获任何泄漏的接口,但显然它无法帮助捕获对象内部泄漏的任何资源。

如果你还没有使用ATL或类似的工具,请立即开始使用,不要使用手动COM处理。 - Georg Fritzsche

3

检查COM对象是否完全释放。通常,AddRef+Release返回当前引用计数以进行调试(生产代码不应依赖此)。

另外,一般建议:减少涉及的代码-您只创建和释放实例时是否有泄漏?在某个方法调用后?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接