2012-04-10 6 views
8

Quiero iterar a través de las variables en la memoria en mi proceso (cargado a través de un complemento de forma dinámica) y buscar instancias de un tipo específico.Técnica para iterar a través de variables y encontrar instancias de un tipo específico

Anteriormente puedo encontrar los tipos específicos (o todos los tipos en la memoria). Puedo crear instancias de tipos, podría obtener instancias que estaban contenidas como campos en un tipo diferente, pero no sé de todos modos solo para "buscar" instancias de un tipo específico.

+1

Puede automatizar Windbg analizando la salida del comando! DumpHeap y luego lanzar los punteros a los tipos administrados dentro de su aplicación. –

+0

Como las respuestas indican que necesita adjuntar un depurador a su aplicación. Si no se trata de una opción, es necesario que elabore el problema un poco más para darle una solución más fácil (por ejemplo, requerir que los objetos se registren en una colección central, ...) –

+0

Si adjuntar al proceso no es una opción, el Las técnicas windbg/sos funcionarán también en un volcado de memoria de proceso. Solo asegúrese de obtener la arquitectura correcta http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64- machine.aspx –

Respuesta

2

Una forma sería usar windbg y sos. Puedes! Dumpheap con un tipo de indicador.

+0

Este artículo, aunque apunta a encontrar fugas, muestra todos los comandos de sos que necesitará. El autor está usando cdb. Puedes usar cdb o windbg, realmente no importa siempre que cargues sos. http://www.simple-talk.com/dotnet/.net-framework/investigating-.net-memory-management-and-garbage-collection/ –

Cuestiones relacionadas