trace 命令使您能够指定要为给定对象(类、实例或关键字)跟踪的主题。主题包括存在性、特性、方法和事件。您可以选择按一个主题跟踪所有对象、按所有主题跟踪一个对象或者在这两者之间任意进行跟踪。
在缺省情况下,跟踪器将跟踪所有的类和实例,并且不会跟踪系统项(例如调用堆栈和事件队列),就像您执行了以下命令:
trace #all all
缺省情况下,在动画中,不会对任何项进行跟踪,就像您执行了以下命令:
trace object nothing
对象
interest-list
| existence | 构造函数 |
| 关系 | 析构函数 |
| 特性 | 超时 |
| 状态 | 参数 |
| controls | subclasses |
| 方法 | 线程 |
| 事件 |
关键字 all 和 nothing 分别表示所有这些主题以及没有任何主题。
在主题前面指定加号 (+) 或减号 (-) 表示对当前兴趣列表添加或除去主题。如果既没有 + 也没有 -,那么输入的主题将成为当前兴趣列表,从而替换先前选择的任何主题。
可以使用在对象名之后列示的主题来设置或修改给定对象的兴趣列表。
trace B[5] relations
现在,跟踪器将在对象 B[5] 的关系每次被修改时显示消息。例如:
OMTracer B[5] item A[7] added to relation itsA
以下 trace 命令将 relations 添加到 B[5] 的兴趣列表中:
trace B[5] +relations
其他与 B[5] 相关的消息将根据兴趣列表在此主题添加命令发出前具有的值进行显示或不显示。
以下 trace 命令从 B[5] 的兴趣列表中除去 relations:
trace B[5] -relations
此命令的效果是,不显示任何关于对象 B[5] 的关系的消息。其他与 B[5] 相关的消息将根据兴趣列表在此命令发出前具有的值进行显示或不显示。
要按主题获取消息的完整列表,请参阅跟踪器消息。
如果兴趣列表中的所有主题都与 + 号或 - 号一起出现,那么将修改该对象的兴趣列表。例如,以下命令将 relations 主题添加到 B[5] 的兴趣列表并除去 states 主题:
trace B[5] +relations, -states
相反,以下命令将 B[5] 的兴趣列表设置为只包含 relations 和 states 主题:
trace B[5] relations, states
trace A +relations