Data 探针对象

Data 探针对象包含由段的 Code 对象中的源代码引用的数据项的名称和类型。

Data 对象是可选的。一个探针段可以包含多个 Data 对象,但是在一个段中的两个 Data 对象不能具有相同的类型或名称。

Data 对象包括下列属性:
属性 描述
名称 必需。必须指定有效的 Java 变量名称。
类型 必需。下表中列示了可用的类型。
下表列示和描述了这些类型并指示了每种类型的数据类型:
类型 数据类型 描述
类名 字符串

以内部格式表示的探测方法的类名,包括包名。

示例:org/eclipse/hyades/SomeClass

methodName 字符串

以内部格式表示的探测方法的方法名称。对于 staticInitializer 段无效。

构造方法具有方法名称 <init>,而静态类初始化方法将 <clinit> 作为方法名称。

methodSig 字符串

以内部格式表示的方法自变量和返回类型特征符。对于 staticInitializer 段无效。

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

thisObject 对象

已传递至探测方法的 this 对象(用于实例方法)。对于 staticInitializer 段无效。

对于静态方法、应用于构造方法的 entry 段以及当构造方法抛出异常时应用于构造方法的 exit 段,thisObject 将为 null

args Object[] 表示探测方法的自变量的 Object 引用的数组。对于方法的每个自变量(不包括 this 自变量),此数组中都有一个元素。是基本类型的自变量会绑定到适当引用类型的临时对象中(例如:Integer 表示 int)。如果方法没有自变量,则这将是大小为零的 Object[] 数组。注意,非静态内部类的构造方法在每个“内部”级别都有一个隐藏的自变量,因此,自变量数组将包含的元素比出现在源代码中的元素更多。对于 staticInitializer 段无效。
returnedObject 对象 对正在返回的对象的引用。此类型仅可用于 exit 段。如果探测方法的返回类型是基本类型,则返回的值会被绑定到适当的引用类型的临时对象中。如果方法为 void(不返回值)或者它由于发生异常而退出,则 returnedObjectnull。仅在 afterCall 段中有效。
exceptionObject 可抛出 对正在抛出的异常对象的引用。此类型仅可用于 catchexit 段。如果方法正在正常退出,则 exceptionObjectnull
isFinally 布尔 一个标志,它指示是从 finally 子句中调用了段(true)还是从 catch 子句中调用了段(false)。仅在 catch 段中有效。
staticField (变化) 静态字段引用的对象。它的类型与在 staticField 对象中声明的类型相同。仅当探针也具有 staticField 对象时该类型才有效。对于调用位置探针无效。
classSourceFile 字符串 可从类文件的调试属性获取的源文件名信息。如果没有源文件名信息,则 classSourceFilenull。对于 Java,该值通常只是不带路径信息的文件名。对于调用位置探针无效。
methodNames 字符串

方法名称和特征符的已编码列表。此列表中的方法的顺序与 methodLineTables 中的方法的顺序相同,并且与 methodNumber 数据项反映的排序顺序相同。该列表将不包括已被 Probekit 插入到类中的任何方法的名称。

methodNames 字符串由一个或多个方法名称和特征符组成,并用加号(“+”)分隔。这些方法特征符是以 Java 内部格式表示的。例如,如果一个类具有两个方法:一个缺省的构造方法、一个 run 方法,后者接收 String 并返回 int,那么该类具有以下 methodNames 字符串:<init>()V+run(Ljava/lang/String;)I

对于调用位置探针无效。

methodLineTables 字符串 与类中的代码的每个可执行单元相对应的行号的已编码列表。该列表将不包括已被 Probekit 插入到类中的可执行单元。有关编码的说明,请参阅 methodLineTables 字符串格式。对于调用位置探针无效。
methodNumber 整数 已插入探针段的方法在methodNames 表中的索引号。对于调用位置探针或 staticInitializer 段无效。
executableUnitNumber 整数 已将探针段插入到的可执行单元的编号。此数据类型仅对于 executableUnitcatch 探针段有效。如果该方法没有源代码行信息,它将以具有单个可执行单元(编号为零)的形式出现。
示例
<data
   type="className"   
   name="__class" />

上级主题: Probekit 参考

Copyright IBM Corporation and others 2000, 2004.