2010-05-04 68 views
7

我想追查一个COM对象中的内存泄漏,我没有看到任何明显的错误。我可能错误地使用了一些COM包装,但是我的标准工具包查找内存泄漏(AQtime)并没有帮助我处理COM。有没有人有任何技巧/工具来追踪COM内存/引用泄漏?如何跟踪COM内存泄漏

回答

4

如果您使用的是ATL,则可以定义_ATL_DEBUG_INTERFACES(请参阅MSDN entry)。这肯定会帮助你捕获任何泄露的接口,但显然它不会帮助捕获对象内部泄漏的任何资源。

+0

如果您不使用ATL或类似的工具,现在就开始并且不要使用手动COM处理。 – 2010-05-04 18:30:21

3

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

否则,只是一般的建议:减少涉及的代码 - 你刚刚创建和发布实例时是否泄漏?在某个方法调用之后?