ProbeKit es una infraestructura de instrumentación de código de bytes (BCI) con capacidad de representación mediante scripts que puede utilizarse para escribir fragmentos de código Java que pueden insertarse en un programa para proporcionar información acerca del mismo durante su ejecución.
Un archivo ProbeKit puede contener una o varias sondas, cada una de las cuales puede contener uno o más fragmentos de sonda. Puede especificar qué sondas desea utilizar en un determinado programa y cuándo desea ejecutar los fragmentos de sonda.
Los fragmentos de sonda se ensamblan en un conjunto de métodos Java que luego se compilan. Cuando se compila una sonda, los fragmentos de código de sonda se combinan con fragmentos de texto estándar y se genera el código fuente Java para una nueva clase. Las funciones generadas a partir de los fragmentos de sonda aparecen como métodos estáticos de la clase de sonda generada.
Cuando se aplican las sondas, el motor BCI hace referencia a la lista de sondas y a sus patrones de destino e inserta las llamadas a métodos de fragmento de sonda en los programas de destino. El proceso de insertar sentencias de llamada en métodos de destino se denomina "instrumentación". Los elementos de datos que solicita un fragmento de sonda (por ejemplo, el nombre y los argumentos de método) se pasan como argumentos. Una ventaja de este sistema es que una sonda puede insertarse en un gran número de métodos de destino con una pequeña actividad adicional.
Si alguno de los métodos de una clase satisfacen las reglas de filtrado y son elegibles para la instrumentación, se dice que la clase es una "clase sondeada".
Tema principal: Recopilación de datos de tiempo de ejecución con sondas definidas por el usuario
Conceptos relacionados
Sondas de método frente a sondas de sitio de llamada
Referencia relacionada
Ejemplos de ProbeKit