show 指令可讓您檢視物件的狀態。它可讓您依主體檢視物件的狀態。主體包括存在性、屬性、方法及事件。
例如,下列指令顯示所有 B[5] 屬性及其現行值的清單:
show B[5] attributes
語法
show <object> <interest-list>
引數
物件
指定要追蹤的物件。它可以是下列其中一個項目:
- 程式碼中出現的類別名稱,如 A。trace 指令會套用至類別 A 的所有實例。
- 目前執行中存在的實例名稱,如 A[3]。在實例建構之前或毀損之後,您無法參照這些實例。
- 導覽表示式,如 A[3]‑>itsB[2]。如需相關資訊,請參閱導覽表示式。
- 程式碼中出現的套件名稱。追蹤程式將會報告套件上的所有類別。
- 追蹤程式瞭解的關鍵字。這些關鍵字不區分大小寫。可能的關鍵字如下:
- #All 表示程式碼中出現的所有類別。
- #Breakpoints 表示所有岔斷點的清單。
- #CallStack 表示目前在堆疊上的作業;也就是,作業已啟動但尚未終止,包括在轉移上定義的行為作業。
- #EventQueue 表示所有擱置事件的佇列;也就是,已傳送但尚未收到的事件。
- #Thread threadName->#CallStack 表示執行緒 threadName 的呼叫堆疊。(已在此執行緒上啟動但尚未終止的所有作業,包括在轉移上定義的行為作業)。
- #Thread threadName->#EventQueue 表示執行緒名稱 threadName 之所有擱置事件的佇列。(已傳送但尚未收到的事件。)
interest-list
指定主體清單,以逗點區隔。喜好清單可決定會將物件的哪些相關資訊報告給您。
此清單為選用;如果未輸入任何主體,則追蹤程式只會報告物件的存在,如同已執行下列指令一樣:
show <object> existence
可能的主體如下:
表 1. show 指令的可能主體| 存在 |
建構子 |
| 關係 |
解構子 |
| 屬性 |
逾時 |
| 狀態 |
參數 |
| 控制項 |
子類別 |
| 方法 |
執行緒 |
| 事件 |
|
主體 existence 會報告物件的存在。
主體 subclasses 會將 trace 指令套用至類別的所有子類別。它僅與類別物件相關。
下列關鍵字可用來定義要顯示的物件(它們不區分大小寫):
- #All 顯示程式碼中所有類別的喜好清單中的主體。
- #All events 顯示系統辨識的所有事件。如果您忘記事件的確切名稱,此主體非常有用。
- #Thread threadName->#CallStack / #CallStack 顯示焦點執行緒上執行緒 threadName 的堆疊中目前的所有作業。
- #Thread threadName-># EventQueue/# EventQueue 顯示焦點執行緒上執行緒 threadName 的佇列中目前的所有事件。
- #Threads 顯示所有執行緒的狀態。每個現用執行緒都會顯示為回應或已暫停。其中一個執行緒的名稱具有星號,指示它是作用中執行緒。
- #Breakpoints 顯示目前作用中岔斷點的清單。
範例
show A[0] states
顯示現行狀態 A[0]。
show #all all
顯示所有實例的所有相關資訊。
show #Breakpoints
顯示所有岔斷點。
show #Threads
顯示所有執行緒。
Show MyClass relations
顯示 MyClass 每個實例之所有實例的所有關係。
特殊情況
在使用 show 指令時,請考量下列特殊情況: