Probekit 是 Eclipse 平台上可用來撰寫和使用探測的架構。探測是指可在程式中插入的 Java™ 程式碼片段,在程式執行時可提供相關的程式資訊。
請從這裡說明的範例探測來開始了解探測。這是基本的探測,可列印訊息來指出程式執行時呼叫的每一個方法。
探測由您在 Probekit 編輯器中建立的項目所定義。這個範例包含單一片段;
片段決定探測的用途。片段的定義包括:
- 片段類型的規格。這個片段是進入片段,表示在方法進入時執行。
- 片段可存取的資料項目。在此,資料項目可讓片段存取類別和方法名稱。
- 定義探測邏輯的 Java 程式碼片段。這個片段會呼叫 System.out.println,顯示執行的方法的類別和方法名稱。
這是探測在 Probekit 編輯器中的樣子:

使用 Probekit 編輯器建立探測之後,即可將探測套用至專案的類別和 jar 檔。然後,在執行專案時,片段程式碼將隨著程式一起執行。
以下是如何建立和使用探測的概觀,包括 Probekit 如何提供協助的相關資訊:
- 使用 Probekit 編輯器在 Probekit 程式檔中建立探測。Probekit 程式檔的副檔名必須是 .probe。這些檔案可以包含一或多個探測,每一個探測可以包含一或多個探測片段。
- Probekit 會將探測片段組合成一組 Java 方法,然後編譯。Probekit 編譯探測時會結合探測片段和標準的 Java 範本,並產生新探測類別的 Java 原始程式碼。從探測片段產生的函數以新探測類別的 Static 方法表示。
- 套用探測時,指定您要探索的目標類別和 jar 檔。Probekit 位元組碼監控 (BCI) 引擎會參照可用的探測及目標型樣的清單,在目標程式中插入探測片段方法的呼叫。將呼叫陳述式插入目標方法中的過程稱為設定監控。含有受監控方法的類別稱為探測類別。探測片段所要求的資料項目(例如,方法名稱和類別名稱)透過引數來傳遞。
- 設定應用程式的監控機制之後,程式執行時將執行探測片段。
探測片段
類型決定片段何時執行。您可以指定類型,規定在下列情況執行片段:
- 在方法進入時。
- 在方法結束時(正常返回或發生異常狀況)。
- 在異常狀況處理常式期間;亦即,由於異常狀況而呼叫的 catch 子句的頂端,或 finally 子句的頂端。
- 在類別 Static 起始設定程式的原始程式碼之前。
- 在每一個可執行的程式碼單元之前(可取得程式碼資訊時)。
- 在呼叫特定的方法時。(在此情況下,監控是在呼叫站台完成,不是在被呼叫的方法內。)
探測片段可以在插入的位置上存取資料項目,以提供應用程式的各種資訊。比方說:
- 套件、類別及方法名稱
- 方法簽章
- this 物件
- 引數
- 回覆值
如果只要將探測套用至特定的類別和方法,請指定目標或設定過濾器。如果需要詳細資訊,請參閱探測目標和過濾器。