trace

trace 指令可讓您指定為給定物件追蹤的主體(類別、實例或關鍵字)。主體包括存在、屬性、方法及事件。您可以選擇依一個主體追蹤所有物件,依所有主體追蹤一個物件,或者兩者之間。

依預設,追蹤程式會追蹤所有類別與實例,且不會追蹤系統項目(如呼叫堆疊及事件佇列),如同執行下列指令:

   trace #all all

依預設,在動畫中,不會追蹤任何項目,如同執行下列指令:

   trace object nothing

語法

trace <object> <interest-list>

引數

物件

指定要追蹤的物件。它可以是下列其中一個項目:

表 1. trace 指令的可能主體
存在 建構子
關係 解構子
屬性 逾時
狀態 參數
控制項 子類別
方法 執行緒
事件  

關鍵字 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 指令會將關係新增至 B[5] 的喜好清單:

trace B[5] +relations 

在提供主體新增指令之前,與 B[5] 相關的其他訊息是否顯示視喜好清單值而定。

範例 3

下列 trace 指令會從 B[5] 喜好清單移除關係:

trace B[5] -relations 

此指令的效果是不會顯示任何有關物件 B[5] 關係的訊息。在提供指令之前,與 B[5] 相關的其他訊息是否顯示視喜好清單值而定。

對於主體訊息的完整清單,請參閱追蹤程式訊息

範例 4

如果出現的喜好清單中的所有主體包含 + 或 -,則會修改物件的喜好清單。例如,下列指令會將主體關係新增至 B[5] 的喜好清單,並移除主體狀態:

trace B[5] +relations, -states

相反,下列指令會設定 B[5] 的喜好清單,以包括主體的確切關係及狀態:

trace B[5] relations, states

特殊情況

在使用 trace 指令時,請考量下列特殊情況:


回饋