2010-05-04 109 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會返回當前引用計數以用於調試目的(您不應該依賴生產代碼)。

否則,只是一般的建議:減少涉及的代碼 - 你剛剛創建和發佈實例時是否泄漏?在某個方法調用之後?