Probekit är ett ramverk på Eclipse-plattformen som du kan använda till att skriva och använda prober. Prober är Java™-kodfragment som kan infogas i ett program för att erhålla information om programmet när det körs.
Om du vill lära dig hur prober fungerar börjar du med det probexempel som beskrivs här. Det är en prob som används till att skriva ut ett meddelande som identifierar alla de metoder som anropas när programmet körs.
Prober definieras av poster som du anger i Probekit-redigeraren. Det här exemplet innehåller ett enda fragment. Det är med
fragment som probens funktion bestäms. Fragmentdefinitioner inkluderar:
- En specifikation av fragmenttypen. Det här fragmentet är ett entry-fragment, vilket innebär att det körs när metoden anropas.
- Dataobjekt som kan accessas med fragment. Här har fragmenten access till dataobjektens klass- och metodnamn.
- Java-kodstycket som används till att definiera probens kod.
Med det här fragmentet anropas System.out.println så att klass- och metodnamn för den metod som körs visas.
Så här ser proben ut i Probekit-redigeraren:

När du har skapat en prob med Probekit-redigeraren kan du använda den på klass- och jar-filerna i projektet. Därefter körs fragmentkoden samtidigt med programmet när du kör projektet.
Här följer en översikt över hur du skapar och använder prober, samt information om hur du kan använda Probekit:
- Du använder Probekit-redigeraren till att skapa prober i Probekit-källfiler.
Probekit-källfilerna måste ha filtillägget .probe. De kan innehålla en eller flera prober och varje prob kan innehålla ett eller flera probfragment.
- Med Probekit sammanställs probfragmenten till en uppsättning Java-metoder som sedan kompileras. När en prob kompileras med Probekit kombineras probfragmenten med Java-standardkodblock (boilerplate-kod) och därefter genereras Java-källkod för en ny probklass. Funktionerna som genereras av probfragmenten visas som statiska metoder för den nya probklassen.
- När du använder en prob anger du de målklass- och jar-filer som du vill undersöka. Med BCI-motorn (Byte Code Instrumentation) i Probekit gås listan över tillgängliga prober och deras målmönster igenom och anrop till probfragmentmetoder infogas i målprogrammen. Processen att infoga
anropssatser i målmetoder kallas instrumentation.
En klass som innehåller en instrumenterad metod kallas en probklass.
De dataobjekt som begärs av ett probfragment (till exempel metod- och klassnamnet) överförs som argument.
- När tillämpningen har instrumenterats. Probfragmenten körs när programmet körs.
Med probfragmentets
typ bestämmer du när ett fragment körs. Du kan ange typer som gör att fragmentet körs vid följande tillfällen:
- När metoden anropas.
- När metoden avslutas (antingen vid normalt avslut eller vid undantag).
- När undantagshanteraren körs. Det vill säga i början av en catch-satsdel eller i början av en finally-satsdel som anropas på grund av ett undantag.
- Före originalkoden i klassen statiska initierare.
- Före alla körbara kodenheter (när information om källkod är tillgänglig).
- När specifika metoder anropas. (I det här fallet görs instrumentationen på anropsplatsen, inte i den anropade metoden.)
Probfragmenten kan accessa dataobjekt som ger olika typer av information om
tillämpningen vid den punkt där de är infogade. Exempel:
- Namn på paket, klass och metod
- Metodsignatur
- this-objekt
- Argument
- Returvärden
Om du vill att proben endast ska användas på vissa klasser och metoder anger du målen eller konfigurerar filter. Mer
information finns i Probmål och filter