Probekit er en struktur på Eclipse-platformen, som du kan bruge til at skrive og anvende
prober.
Prober er Java™-kodefragmenter, der kan indsættes i et program for at
give oplysninger om programmet, mens det udføres.
Start med det eksempel på en probe, der beskrives her, for at få forståelse
af, hvad prober er. Det er en grundlæggende probe, som udskriver en meddelelse
med identifikation af alle de metoder, der kaldes, når dit program udføres.
Prober defineres af de indgange, du opretter i Probekit
Editor. Denne eksempelprobe indeholder et enkelt fragment.
Fragmenter
er bestemmende for, hvad proben foretager sig. Fragmentdefinitioner omfatter:
- Specifikation af fragmenttypen. Dette fragment er et
indgangsfragment, hvilket vil sige, at det udføres på tidspunktet for
metodeindgangen.
- Dataelementer, som fragmentet kan få adgang til. Her lader
dataelementerne fragmentet få adgang til klasse- og metodenavne.
- Det Java-kodestykke, der definerer probens logik. Dette
fragment kalder System.out.println for at få vist klasse- og
metodenavn på de metoder, der udføres.
Sådan ser proben ud i Probekit Editor:

Når du har oprettet en probe ved hjælp af Probekit Editor, kan du anvende
den på projektets klasse- og JAR-filer. Når du derefter udfører projektet,
udføres fragmentkoden sammen med programmet.
Her er en oversigt over, hvordan du kan oprette og anvende
prober, herunder også oplysninger om, hvordan Probekit kan være dig til nytte:
- Du bruger Probekit Editor til at oprette prober i Probekit-kildefiler.
Probekit-kildefiler skal have filtypen .probe. De kan indeholde én
eller flere prober, og hver probe kan indeholde ét eller flere probefragmenter.
- Probekit samler probefragmenter i et sæt Java-metoder og kompilerer dem
derefter. Når Probekit kompilerer en probe, kombineres probefragmenterne med
Java-standardtekst, og der genereres Java-kildekode til en ny probeklasse. De
funktioner, der genereres fra probefragmenterne, fremstår som den nye
probeklasses statiske metoder.
- Når du anvender en probe, angiver du de målklasse- og JAR-filer, som du vil
undersøge. Probekit-BCI-programmet (Byte-Code Instrumentation) refererer til
listen over tilgængelige prober og tilhørende målmønstre og indsætter kald til
probefragmentmetoderne i målprogrammerne. Processen til indsættelse af
CALL-sætninger i målmetoderne omtales som instrumentering.
En klasse, der indeholder en instrumenteret metode, kaldes en probet klasse.
De dataelementer, der bestilles af et probefragment, f.eks. metodenavn og klassenavn,
sendes som argumenter.
- Efter programmet er instrumenteret. Probefragmenterne
bliver udført, når programmet udføres.
Probefragmentet
type bestemmer, hvornår et fragment udføres. Du
kan angive typer, der får fragmentet til at blive udført i følgende situationer:
- Efter tidspunktet for metodeindgang.
- Efter tidspunktet for metodeafslutning (hvis du vender tilbage enten på normal vis
eller som resultat af en undtagelse).
- Efter tidspunktet for behandling af undtagelser, dvs. i begyndelsen af et
CATCH-udtryk eller i begyndelsen af et FINALLY-udtryk, der kaldes som
resultat af undtagelsen.
- Før den oprindelige kode i den statiske initialiseringsfunktion for klassen.
- Før hver eksekvérbar kodeenhed, når der er tilgængelige oplysninger om kildekode.
- Når de bestemte metoder kaldes. I så fald foretages instrumenteringen på det pågældende kaldsted,
ikke inde i den kaldte metode.
Probefragmenter kan få adgang til dataelementer, som giver forskellige
slags oplysninger om programmet det sted, de er indsat. Eksempel:
- Pakke-, klasse- og metodenavn
- Metodesignatur
- Objektet this
- Argumenter
- Returværdi
Hvis du vil kun vil anvende proben til bestemte klasser og metoder, skal du
angive mål eller oprette filtre. Der er flere oplysninger under Probemål og -filtre.