2010-05-04 21 views
7

Estoy tratando de rastrear una fuga de memoria en un objeto COM, y no veo nada obviamente mal. Probablemente estoy usando algunas de las envolturas COM incorrectamente, pero mi kit de herramientas estándar para encontrar fugas de memoria (AQtime) no me está ayudando con COM. ¿Alguien tiene trucos/herramientas para rastrear la memoria COM/fugas de referencia?Cómo rastrear la pérdida de memoria COM

Respuesta

4

Si está utilizando ATL puede definir _ATL_DEBUG_INTERFACES (consulte MSDN entry). Esto sin duda le ayudará a detectar las interfaces filtradas, aunque obviamente no ayudará a captar los recursos que se hayan filtrado dentro del objeto.

+0

Y si no está utilizando ATL o herramientas similares, comience ahora y no utilice el manejo manual de COM. –

3

Compruebe si el (los) objeto (s) COM se liberan por completo. Por lo general, AddRef + Release devuelve el recuento de referencia actual para fines de depuración (no debe confiar en eso para el código de producción).

De lo contrario, solo consejo general: reduzca el código involucrado - ¿obtiene la fuga cuando acaba de crear y liberar la instancia? Después de una determinada llamada al método?

Cuestiones relacionadas