trace

trace 命令使您能够指定要为给定对象(类、实例或关键字)跟踪的主题。主题包括存在性、特性、方法和事件。您可以选择按一个主题跟踪所有对象、按所有主题跟踪一个对象或者在这两者之间任意进行跟踪。

在缺省情况下,跟踪器将跟踪所有的类和实例,并且不会跟踪系统项(例如调用堆栈和事件队列),就像您执行了以下命令:

   trace #all all

缺省情况下,在动画中,不会对任何项进行跟踪,就像您执行了以下命令:

   trace object nothing

语法

trace <object> <interest-list>

自变量

对象

指定要跟踪的对象。这可以是下列其中一项:

表 1. trace 命令的可能主题
existence 构造函数
关系 析构函数
特性 超时
状态 参数
controls subclasses
方法 线程
事件  

关键字 allnothing 分别表示所有这些主题以及没有任何主题。

在主题前面指定加号 (+) 或减号 (-) 表示对当前兴趣列表添加或除去主题。如果既没有 + 也没有 -,那么输入的主题将成为当前兴趣列表,从而替换先前选择的任何主题。

主题 existence 报告对象的存在情况。

主题 subclasses 将 trace 命令应用于一个类的所有子类。此主题仅与类对象相关。

命令语义

可以使用在对象名之后列示的主题来设置或修改给定对象的兴趣列表。

示例 1

以下命令将 B[5] 的兴趣列表设置为关系:

trace B[5] relations

现在,跟踪器将在对象 B[5] 的关系每次被修改时显示消息。例如:

   OMTracer B[5] item A[7] added to relation itsA

对于 B[5],将只显示与关系相关的消息。

示例 2

以下 trace 命令将 relations 添加到 B[5] 的兴趣列表中:

trace B[5] +relations 

其他与 B[5] 相关的消息将根据兴趣列表在此主题添加命令发出前具有的值进行显示或不显示。

示例 3

以下 trace 命令从 B[5] 的兴趣列表中除去 relations:

trace B[5] -relations 

此命令的效果是,不显示任何关于对象 B[5] 的关系的消息。其他与 B[5] 相关的消息将根据兴趣列表在此命令发出前具有的值进行显示或不显示。

要按主题获取消息的完整列表,请参阅跟踪器消息

示例 4

如果兴趣列表中的所有主题都与 + 号或 - 号一起出现,那么将修改该对象的兴趣列表。例如,以下命令将 relations 主题添加到 B[5] 的兴趣列表并除去 states 主题:

trace B[5] +relations, -states

相反,以下命令将 B[5] 的兴趣列表设置为只包含 relations 和 states 主题:

trace B[5] relations, states

特殊情况

在使用 trace 命令时,请考虑下列特殊情况:


反馈