Data 探针对象包含由段的 Code 对象中的源代码引用的数据项的名称和类型。
Data 对象是可选的。一个探针段可以包含多个 Data 对象,但是在一个段中的两个 Data 对象不能具有相同的类型或名称。
| 属性 | 描述 |
|---|---|
| 名称 | 必需。必须指定有效的 Java 变量名称。 |
| 类型 | 必需。下表中列示了可用的类型。 |
| 类型 | 数据类型 | 描述 |
|---|---|---|
| className | 字符串 | 以内部格式表示的探测方法的类名,包括包名。 示例: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(不返回值)或者它由于发生异常而退出,则 returnedObject 为 null。仅在 afterCall 段中有效。 |
| exceptionObject | 可抛出 | 对正在抛出的异常对象的引用。此类型仅可用于 catch 和 exit 段。如果方法正在正常退出,则 exceptionObject 为 null。 |
| isFinally | 布尔 | 一个标志,它指示是从 finally 子句中调用了段(true)还是从 catch 子句中调用了段(false)。仅在 catch 段中有效。 |
| staticField | (变化) | 静态字段引用的对象。它的类型与在 staticField 对象中声明的类型相同。仅当探针也具有 staticField 对象时该类型才有效。对于调用位置探针无效。 |
| classSourceFile | 字符串 | 可从类文件的调试属性获取的源文件名信息。如果没有源代码信息,则 classSourceFile 为 null。对于 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 | 整数 | 已将探针段插入到的可执行单元的编号。此数据类型仅对于 executableUnit 和 catch 探针段有效。如果该方法没有源代码行信息,它将以具有单个可执行单元的形式出现(编号为零)。 |
<data type="className" name="__class" />
包含于
Fragment 探针对象
上级主题: Probekit 参考