Data 探針物件包含片段的 Code 物件中的程式碼所參照之資料項目的名稱和類型。
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 | 要擲出的異常狀況物件參照。這種類型只能在 catch 和 exit 片段使用。如果方法正常結束,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 和傳回 int 的 run 方法)包含此 methodNames 字串:<init>()V+run(Ljava/lang/String;)I 對 Callsite 探針無效。 |
methodLineTables | String | 對應類別中的每個程式碼可執行單元的行號編碼清單。清單將不包含 Probekit 所插入類別中的可執行單元。如果需要編碼的說明,請參閱 methodLineTables 字串格式。對 Callsite 探針無效。 |
methodNumber | Integer | 要插入探針片段之方法的 methodNames 表格中的索引號碼。對 Callsite 探針或 staticInitializer 片段無效。 |
executableUnitNumber | Integer | 要插入探針片段的可執行單元的號碼。這個資料類型僅對 executableUnit 和 catch 探針片段有效。如果方法沒有指令行資訊,將會出現為單一可執行單元,編號為零。 |
<data type="className" name="__class" />
內含於
Fragment 探針物件