2010-12-01 5 views
19

Los objetos GDI con fuga se pueden ver desde el administrador de tareas o desde Process Explorer. (Bueno no ve las fugas, pero se puede ver si el objeto uasage contar continuamente sube.)¿Es posible detectar fugas de GDI desde el depurador de Visual Studio?

También existen herramientas que permiten ver objetos GDI por tipo, tales como GDIView [a], DeLeaker, DPUS o el GDIDebug (sourecode).

[a] Nota que considero GDIView una gran herramienta para hacer el trabajo de identificación y confirmación de la existencia de fugas de GDI, pero realmente no ayuda a encontrar el código de la fuga en aplicaciones de gran tamaño. (Yo también señalar aquí que la herramienta funciona muy bien y parece comporta bien, aunque su página de inicio es littlebit extraño (-:.)

También existe un plugin WinDBG llamada leaktrap que utiliza MS Detours Library

I también conozco (y he usado) AQTime's Resource Profiler que permite detectar GDI (y otras) pérdidas de recursos en una aplicación que incluye rastros de pila para las llamadas con fugas.

Ahora, mi pregunta real es: ¿Es posible? para detectar objetos GDI que se escapan desde el depurador de VC++? Para que uno no necesite una separación La herramienta y las fugas de GDI pueden detectarse durante la depuración normal y no deben verificarse por separado.

+1

si pudiera +2 a esta pregunta lo haría. además de ser una buena pregunta, en realidad proporcionas toneladas de información excelente. – tenfour

Respuesta

6

Los objetos GDI no tienen que ser verificados individualmente (notreally), pueden estar a cargo de Deleaker, y sabrá dónde está la fuga. Lea atentamente las instrucciones y vea un video de demostración: http: //deleaker.com/

+0

¿Por qué diría usted que "no tienen que comprobarse individualmente"? Si una aplicación no libera correctamente objetos GDI, por supuesto que me gustaría saber qué código se está filtrando ...? !! –

+1

Gran depurador también lo uso)) –

+0

+5 aprobar ... funcionan bien, cuestan poco. – MastAvalons

3

Intel Parallel Inspector es un comprobador de fugas de memoria que está integrado en Visual Studio y puede detectar fugas de GDI.

+0

Hmmm ... ¿extiende esto el depurador visual studio existente, o es una herramienta separada que "solo" se integra con Visual Studio? (como hace AQ Time) –

+0

Un corrector de fugas de memoria y un depurador son dos cosas diferentes ... y sí, simplemente se integra con Visual Studio. – ronag

0

Visual Studio no tiene un generador de perfiles incorporado para aplicaciones no administradas.

Eso está confirmado.

+0

La pregunta es acerca de los recursos de GDI, no de la memoria. (Y VC++ tiene herramientas incorporadas para rastrear fugas de memoria en _native_ code.) –

Cuestiones relacionadas