Data 探針物件

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

Data 物件是選用性的物件。 探針片段可以包含一個以上的 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 即將擲出之異常狀況物件的參照。 這個類型只適用於 catchexit 片段。 如果這個方法正常結束,則 exceptionObject 就是 null
isFinally boolean 為一旗標,可指出片段是從 finally 子句 (true) 呼叫, 還是從 catch 子句 (false) 呼叫。 它只適用於 catch 片段。
staticField (varies) 靜態欄位所參照的物件。 其類型與 staticField 物件所宣告的一樣。 只有當探針也有 staticField 物件時,它才有效。 它不適用於 Callsite 探針。
classSourceFile String 程式檔名稱資訊,可從類別檔的除錯屬性取得。 如果沒有程式碼資訊,則 classSourceFilenull。 對於 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 探針片段被插進的執行單元數目。 這個資料類型只適用於 executableUnitcatch 探針片段。 如果這個方法沒有來源行資訊,則會出現一個編號為零的執行單元。
範例
<data
   type="className"
   name="__class" />

母主題: Probekit 參照

Copyright IBM Corporation and others 2000, 2004.