Itens de Dados de Fragmento de Probe

Os itens de dados de um fragmento são os nomes e os tipos de itens de dados aos quais o código fonte do fragmento pode fazer referência.

A especificação de itens de dados é opcional. Um fragmento pode conter mais de um item de dados, mas cada tipo de item pode aparecer apenas uma vez.

Um item de dados inclui as seguintes propriedades:
Propriedade Descrição
Tipo de Dados Obrigatório. Os tipos disponíveis estão listados na seguinte tabela.
Nome Obrigatório. Deve especificar um nome de variável Java válida. O código fonte do fragmento de probe utilizará esse nome para fazer referência aos dados indicados.
A tabela a seguir lista e descreve os tipos de dados disponíveis por meio do editor Probekit:
Tipo de Dados tipo Descrição
className Cadeia

Para probes de método, o nome da classe do método com probe, incluindo o nome do pacote no formato interno. Para probes callsite, o nome da classe do método chamado.

Exemplo: org/eclipse/tptp/SomeClass

methodName Cadeia

Para probes de método, o nome do método com probe, em formato interno. Para probes callsite, o nome do método chamado.

Os construtores possuem o nome do método <init> e os inicializadores de classe estática possuem o nome do método <clinit>.

methodSig Cadeia

O argumento do método e a assinatura do tipo de retorno, no formato interno. Não válido para fragmentos staticInitializer.

Exemplo: (Ljava/lang/String;)I

thisObject Objeto

O objeto this (para métodos de instância) que foi transmitido para o método sondado. Não válido para fragmentos staticInitializer.

thisObject é null para métodos estáticos, para fragmentos entry aplicados a construtores e para fragmentos exit aplicados a construtores quando o construtor emite uma exceção.

args Objeto[]

Uma matriz de referências Objeto que representa os argumentos para o método sondado. Há um elemento nessa matriz em cada argumento para o método (sem contar o argumento this). Os argumentos que são tipos primitivos são encaixotados em objetos temporários do tipo de referência apropriado, por exemplo: Integer para int. Se o método não utilizar nenhum argumento, o tamanho da matriz Object[] será zero.

Observe que os construtores para classes internas não estáticas têm um argumento oculto por nível "interno", portanto, a matriz do argumento conterá mais elementos do que aqueles que aparecem no código fonte. Não válido para fragmentos staticInitializer.

returnedObject Objeto Uma referência ao objeto que está sendo retornado. Esse tipo está disponível apenas para fragmentos exit e afterCall. Se o tipo de retorno do método sondado for um tipo primitivo, o valor retornado será ligado em um objeto temporário do tipo de referência adequado. Se o método for void (não retorna um valor) ou se sair por exceção, returnedObject será null.
exceptionObject Lançável Uma referência ao objeto de exceção que está sendo lançado. Esse tipo está disponível apenas para fragmentos catch e exit. Se o método sair normalmente, exceptionObject será null.
isFinally booleano Um sinalizador indicando se o fragmento foi chamado a partir de uma cláusula finally (true) ou de uma cláusula catch (false). Válido apenas em fragmentos catch.
staticField (varia) O objeto referido pelo campo estático. Seu tipo é igual àquele que foi declarado no objeto staticField. Isso será válido apenas se o probe declarar um staticField. (Consulte Um Exemplo de Probe staticField e staticInitializer.) Não válido para probes callsite.
classSourceFile Cadeia Informações do nome do arquivo de origem disponíveis a partir dos atributos de depuração do arquivo de classe. Se não houver nenhuma informação de origem, classSourceFile será null. Para Java, o valor é normalmente apenas o nome do arquivo, sem informações de caminho. Não válido para probes callsite.
methodNames Cadeia

Uma lista codificada de nomes e assinaturas de método. A ordem dos métodos nessa lista é a mesma ordem dos métodos em methodLineTables e é a mesma ordem refletida pelo item de dados methodNumber. A lista não inclui os nomes de nenhum método inserido na classe pelo Probekit.

A cadeia methodNames consiste em um ou mais nomes e assinaturas de métodos, separados por um sinal de mais ("+"). As assinaturas de métodos estão no formato interno Java. Por exemplo, uma classe com dois métodos, um construtor padrão e um método run que utiliza uma String e retorna um int, possui esta cadeia methodNames: <init>()V+run(Ljava/lang/String;)I

Não válido para probes callsite.

methodLineTables Cadeia Uma lista codificada de números de linha que correspondem a cada unidade executável do código na classe. A lista não inclui unidades executáveis que foram inseridas na classe pelo Probekit. Para obter uma explicação sobre a codificação, consulte O Formato da Cadeia de Dados methodLineTables. Não válido para probes callsite.
methodNumber Inteiro O número do índice na tabela methodNames para o método no qual o fragmento do probe foi inserido. Não é válido para probes callsite ou fragmentos staticInitializer.
executableUnitNumber Inteiro O número da unidade executável em que o fragmento de probe foi inserido. Esse tipo de dados é válido apenas para fragmentos de probe executableUnit e de captura. Se o método não possuir informações de linha de origem, ele parecerá ter uma unidade executável única, numerada com zero.
Exemplo:

Para digitar itens de dados de fragmentos de probe, selecione Fragmento na área de janela da árvore e utilize Incluir e Editar para digitar e definir os itens de dados na área de janela de edição.

O Editor Probekit Mostrando como se Parecem os Itens de Dados do Fragmento

Referência Relacionada
Código Fonte Java do Fragmento de Probe
Tipos de Fragmento de Probe