O Probekit é uma estrutura de BCI (instrumentação de código de byte) que pode ser incluída em scripts e utilizada para gravar fragmentos de código Java que podem ser inseridos em um programa para fornecer informações sobre o programa durante sua execução.
Um arquivo do Probekit pode conter uma ou várias probes e cada uma delas pode conter um ou mais fragmentos de probe. É possível especificar quais probes deseja utilizar em um determinado programa e quando deseja que os fragmentos da probe sejam executados.
Os fragmentos da probe são montados em um conjunto de métodos Java que são, por sua vez, compilados. Quando uma probe é compilada, os fragmentos de código da probe são combinados com boilerplate padrão e o código fonte Java para uma nova classe é gerado. As funções geradas a partir dos fragmentos da probe aparecem como métodos estáticos da classe probe geradas.
Quando as probes são aplicadas, o mecanismo BCI refere-se à lista de probes e seus padrões de destino, e insere chamadas para métodos de fragmentos da probe nos programas de destino. O processo de inserir instruções de chamada em métodos de destino é referido como "instrumentação". Os itens de dados solicitados por um fragmento de probe (por exemplo, o nome e os argumentos do método) são transmitidos como argumentos. Um benefício desse sistema é que uma probe pode ser inserida em um grande número de métodos de destino com um pequeno código extra.
Se quaisquer dos métodos em uma classe satisfizerem as regras de filtragem e forem elegíveis para instrumentação, a classe é dita como sendo uma "classe com probe".
Tópico Pai: Coletando Dados de Tempo de Execução com Monitoramentos Definidos pelo Usuário
Conceitos Relacionados
Probes de Métodos Versus Probes de Callsite
Referências Relacionadas
Exemplos do Probekit