Data 探針物件

Data 探針物件包含片段的 Code 物件中的程式碼所參照之資料項目的名稱和類型。

Data 物件可視需要選擇使用。探針片段可以包含多個 Data 物件,但是片段中的兩個 Data 物件不能有相同的類型或名稱。

Data 物件包括下列內容:
內容 說明
name 必要。必須指定有效的 Java 變數名稱。
type 必要。下表列出可用的類型。
下表列出及說明類型,並指出每個類型的資料類型:
類型 資料類型 說明
className String

探測方法的類別名稱,包括套件名稱(內部格式)。

範例:org/eclipse/hyades/SomeClass

methodName String

探測方法的方法名稱(內部格式)。對 staticInitializer 片段無效。

建構子具有方法名稱 <init>,靜態類別起始設定程式以 <clinit> 作為方法名稱。

methodSig String

方法引數和傳回類型簽章(內部格式)。對 staticInitializer 片段無效。

範例:(Ljava/lang/String;)I

thisObject Object

傳遞給探測方法的 this 物件(實例方法的物件)。對 staticInitializer 片段無效。

對於靜態方法、套用在建構子的 entry 片段,以及當建構子擲出異常狀況時套用在建構子的 exit 片段,thisObject 將會是 null

args Object[] 代表探測方法之引數的 Object 參照陣列。對於方法的每個引數都會有一個元素(this 引數不算在內)在這個陣列之中。初始類型的引數會連結到適當參照類型的暫時物件,例如:int 使用 Integer。如果方法沒有引數,將會有大小為零的 Object[] 陣列。請注意,非靜態內部類別的建構子在每個「內部」(inner) 層次會有一個隱藏引數,所以引數陣列將包含比出現在程式碼中還要多的元素。對 staticInitializer 片段則無效。
returnedObject Object 要傳回的物件參照。這種類型只能在 exit 片段使用。如果探測方法的傳回類型是初始類型,傳回的值會連結到適當參照類型的暫時物件。如果方法是 void(不傳回值)或因為異常狀況而結束,returnedObject 將會是 null。只有在 afterCall 片段中有效。
exceptionObject Throwable 要擲出的異常狀況物件參照。這種類型只能在 catchexit 片段使用。如果方法正常結束,exceptionObject 將會是 null
isFinally boolean 旗標指出片段是從 finally 子句 (true) 或是從 catch 子句 (false) 中呼叫。只有在 catch 片段中有效。
staticField (變動) 靜態欄位所參照的物件。其類型是 staticField 物件中宣告的相同類型。這只有在探針也具有 staticField 物件時才有效。對 Callsite 探針無效。
classSourceFile String 可以從類別檔的除錯屬性取得的程式檔名稱資訊。如果沒有程式碼資訊,classSourceFile 將會是 null。對於 Java,此值通常只是檔名,沒有路徑資訊。對 Callsite 探針無效。
methodNames String

方法名稱和簽章的編碼清單。這份清單中的方法次序與 methodLineTables 中的方法次序相同,而且與 methodNumber 資料項目所反映的次序相同。清單不包含 Probekit 所插入類別中的任何方法的名稱。

methodNames 字串是由一或多個方法名稱和簽章所組成,以加號 ("+") 分隔。方法簽章為 Java 內部格式。例如,具有兩個方法的類別(預設建構子,及採用 String 和傳回 intrun 方法)包含此 methodNames 字串:<init>()V+run(Ljava/lang/String;)I

對 Callsite 探針無效。

methodLineTables String 對應類別中的每個程式碼可執行單元的行號編碼清單。清單將不包含 Probekit 所插入類別中的可執行單元。如果需要編碼的說明,請參閱 methodLineTables 字串格式。對 Callsite 探針無效。
methodNumber Integer 要插入探針片段之方法的 methodNames 表格中的索引號碼。對 Callsite 探針或 staticInitializer 片段無效。
executableUnitNumber Integer 要插入探針片段的可執行單元的號碼。這個資料類型僅對 executableUnitcatch 探針片段有效。如果方法沒有指令行資訊,將會出現為單一可執行單元,編號為零。
範例
<data
   type="className"   
   name="__class" />

上層主題: Probekit 元素參照

相關參考
staticInitializer 探針片段
StaticField 探針物件
methodLineTables 字串格式
executableUnit 探針片段

Terms of use | Feedback
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.