【发布时间】:2011-02-15 14:27:51
【问题描述】:
我正在尝试追踪 COM 对象中的内存泄漏,但没有发现任何明显错误。我可能错误地使用了一些 COM 包装器,但我的标准内存泄漏 (AQtime) 工具包并没有帮助我处理 COM。有没有人有任何技巧/工具来追踪 COM 内存/引用泄漏?
【问题讨论】:
标签: c++ com memory-leaks
我正在尝试追踪 COM 对象中的内存泄漏,但没有发现任何明显错误。我可能错误地使用了一些 COM 包装器,但我的标准内存泄漏 (AQtime) 工具包并没有帮助我处理 COM。有没有人有任何技巧/工具来追踪 COM 内存/引用泄漏?
【问题讨论】:
标签: c++ com memory-leaks
如果您使用 ATL,您可以定义 _ATL_DEBUG_INTERFACES(请参阅MSDN entry)。这肯定会帮助您捕获任何泄漏的接口,尽管显然它无助于捕获对象内部泄漏的任何资源。
【讨论】:
检查 COM 对象是否完全释放。通常,AddRef+Release 返回当前引用计数以用于调试目的(您不应该依赖于生产代码)。
否则,只是一般建议:减少所涉及的代码 - 您是否在刚刚创建和发布实例时发现泄漏?在某个方法调用之后?
【讨论】: