2011-03-08 15 views
5

Tengo la intención de hacer una herramienta de creación de perfiles muy específica que escuche eventos de un tipo específico, es decir, tengo un tipo T que tiene sus eventos. Quiero saber cada vez que cualquier instancia de T desencadena eventos.¿Cómo construyo un depurador personalizado que se conecta a un proceso .NET y escucha eventos de un tipo específico?

El usuario ejecuta la aplicación de creación de perfiles, se conecta a un proceso y la aplicación comienza a generar los registros.

¿Es posible? Si es cierto, ¿cómo empiezo?

+0

Debe aceptar una respuesta o dejar comentarios sobre lo que está buscando. –

Respuesta

2

Hace unos años trabajé en algo similar, pero no exactamente perfilado. La forma en que comencé fue mirando el código fuente de CLR Profiler que está disponible en MSDN, y luego descubro cómo se conecta a una aplicación en ejecución, hay un pequeño código no administrado que tendría que hacer, pero puede ser recogido directamente de CLR Profiler;)

Los siguientes son algunos lugares donde puede comenzar a mirar.

ICorDebug - Proporciona métodos que permiten a los desarrolladores depurar aplicaciones en el CLR.

Additional Debugging Interfaces - Todas las formas en que podría engancharse en CLR para depuración y creación de perfiles.

ICorProfilerCallback - Primera interfaz a tener en cuenta para la implementación de perfiles.

Profiling interfaces - Para cualquier evento de creación de perfiles que desee implementar.

CLR Profiler - Me gustaría ver el origen de esto, hace todo lo que quiere hacer.

1

¿Conoces dotnet performance counter? No tienen nada que ver con la depuración, pero son buenos para atrapar y contar eventos especiales.

Puede utilizarlos, por ejemplo, para ver cuántos clientes han iniciado sesión en su aplicación web.

Cuestiones relacionadas