Data 探針物件含有片段的 Code 物件中, 程式碼所參照之資料項目的名稱和類型。
Data 物件是選用性的物件。 探針片段可以包含一個以上的 Data 物件,但是一個片段內不能有兩個 Data 物件,同時具有同樣的類型或名稱。
內容 | 說明 |
---|---|
名稱 | 必要的項目。 必須指定一個有效的 Java 變數名稱。 |
type | 必要的項目。 下表將列出可用的類型。 |
類型 | 資料類型 | 說明 |
---|---|---|
className | String | 被探測之方法的類別名稱(包含套件名稱在內),採內部格式。 範例:org/eclipse/hyades/SomeClass |
methodName | String | 被探測之方法的方法名稱,採內部格式。 不適用於 staticInitializer 片段。 建構元的方法名稱是 <init>,靜態類別初值設定的方法名稱是 <clinit>。 |
methodSig | String | 方法引數和傳回類型簽章,採內部格式。 不適用於 staticInitializer 片段。 範例:(Ljava/lang/String;)I |
thisObject | Object | 傳給被探測方法的 this 物件(用於實例方法)。 不適用於 staticInitializer 片段。 thisObject 用在下列幾項時,都是 null:static 方法、套用於建構元的 entry 片段,以及當建構元擲出異常狀況時,套用於建構元的 exit 片段。 |
args | Object[] | Object 參照的陣列,代表被探測之方法的引數。 對於方法的每一個引數(this 引數不算)來說,這個陣列有一個元素。 初始類型的引數,一定是適當參照類型的暫時物件,例如:如果是 int,則為 Integer。 如果方法沒有任何引數,則為 Object[] 陣列(大小為零)。 請注意,非 Static 內部類別的建構元,它在每一個「內部」層都有一個隱藏式引數, 因此,引數陣列所含的元素,要比程式碼所含的元素更多。 不適用於 staticInitializer 片段。 |
returnedObject | Object | 即將傳回之物件的參照。 這個類型只適用於 exit 片段。 如果被探測方法的傳回類型是初始類型,則傳回值一定是適當參照類型的暫時物件。 如果方法是 void(沒有傳回一值),或者因為發生異常狀況而結束,則 returnedObject 就是 null。 它只適用於 afterCall 片段。 |
exceptionObject | Throwable | 即將擲出之異常狀況物件的參照。 這個類型只適用於 catch 和 exit 片段。 如果這個方法正常結束,則 exceptionObject 就是 null。 |
isFinally | boolean | 為一旗標,可指出片段是從 finally 子句 (true) 呼叫, 還是從 catch 子句 (false) 呼叫。 它只適用於 catch 片段。 |
staticField | (varies) | 靜態欄位所參照的物件。 其類型與 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 探針物件
母主題: Probekit 參照