探针段数据项

段的数据项是段的源代码可以引用的数据项的名称和类型。

可以选择是否指定数据项。一个段可以包含多个数据项,但是每种类型的数据项只能出现一次。

一个数据项包含下列属性:
属性 描述
Data Type 此属性是必需的。下表中列示了可用的类型。
Name 此属性是必需的。必须指定有效的 Java™ 变量名称。探针段源代码将使用此名称来引用所指示的数据。
下表列示和描述了通过 Probekit 编辑器提供的数据类型:
数据类型 类型 描述
className 字符串

对于方法探针,这是指内部格式的探测方法的类名(包括包名);而对于调用位置探针,这是指被调用的方法的类名。

示例:org/eclipse/hyades/SomeClass

methodName 字符串

对于方法探针,这是指内部格式的探测方法的方法名;而对于调用位置探针,这是指被调用的方法的方法名。

构造函数具有方法名 <init>,而静态类初始化方法具有方法名 <clinit>

methodSig 字符串

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

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

thisObject 对象

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

对于静态方法、应用于构造函数的 entry 段以及当构造函数抛出异常时应用于构造函数的 exit 段,thisObjectnull

args Object[]

Object 引用的数组,这些引用表示探测方法的自变量。对于方法的每个自变量(未考虑 this 自变量),该数组中都有一个元素。是基本类型的自变量会绑定到适当引用类型的临时对象中(例如:Integer 表示 int)。如果方法没有自变量,则 Object[] 数组的大小为零。

注意,非静态内部类的构造函数对每个“内部”级别有一个隐藏的自变量,所以自变量数组包含的元素将比源代码中出现的元素多。对于 staticInitializer 段无效。

returnedObject 对象 对正在返回的对象的引用。此类型仅可用于 exitafterCall 段。如果探测方法的返回类型是基本类型,则将把返回的值绑定至适当引用类型的临时对象。如果方法是 void(不返回值)或者它由于发生异常而退出,则 returnedObjectnull
exceptionObject 可抛出 对正在抛出的异常对象的引用。此类型仅可用于 catchexit 段。如果该方法正常退出,则 exceptionObject 将为 null
isFinally 布尔 表明段是从 finally 子句(true)还是从 catch 子句(false)调用的一个标志。仅在 catch 段中有效。
staticField (变化) 由静态字段引用的对象。其类型与 staticField 对象中声明的类型相同。这仅当探针声明 staticField 时才有效。(请参阅staticField 和 staticInitializer 探针示例。)对于调用位置探针无效。
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 整数 插入到探针段中的可执行单元数。此数据类型仅对于 executableUnit 和 catch 探针段有效。如果该方法没有源代码行信息,它就会以具有单个可执行单元(编号为零)的形式出现。
示例:

要输入探针段数据项,在树窗格中选择,然后使用添加编辑在编辑窗格中输入和定义数据项。

Probekit 编辑器显示一个段的数据项的外观

相关参考
staticInitializer 探针段类型
探针静态字段
methodLineTables 数据字符串格式
executableUnit 探针段类型
反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.