> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# xbWatson

> xbWatson

xbWatson 是一個工具，可讓您使用開發電腦監視來自 XBOX 主機的全系統偵錯輸出與重大系統事件。xbWatson 具有規則編輯器，可進行輸出自訂與動作、處理序監視與控制。您也可以收集堆積、分級與迷你記憶體傾印。

功能概觀：

* 收集全系統偵錯輸出與重大系統事件
* 使用規則編輯器篩選與自訂輸出
* 將輸出串流分隔至多個輸出索引標籤
* 儲存並發佈您自訂的規則與設定
* 取得詳細的處理序監視與控制
* 建立與管理分級、堆積與迷你記憶體傾印

xbWatson 是以工作階段為基礎，也就是說，其生命週期取決於與特定主機的連線。您無法中斷現有工作階段的連線並將其重新連線至另一部主機。不過，您可以開啟多個 xbWatson 執行個體，每個執行個體連線至不同的主機。xbWatson 是協同運作的，也就是說，沒有獨佔連線，也不會意外鎖定主機。多個執行個體可以以同一部主機為目標，並能良好地協同運作，即使來自不同的電腦或開發人員也一樣。

## 內容

* [開啟 xbWatson](#ID4EBB)
* [功能](#ID4ETB)
* [記憶體傾印](#ID4ETC)
* [遊戲記憶體](#game_memory)

## 開啟 xbWatson

您可以從 GDK 命令提示字元、從 [XBOX Manager](https://docs.xbox.com/zh-TW/tools/tools-console/xbom/xbom.md)，或從開始功能表搜尋 xbWatson 來開啟 xbWatson。除非在命令列上提供測試主機 IP 或主機名稱加以覆寫，否則 xbWatson 會連線至您的預設主機。

從命令列開啟 xbWatson，並使用預設主機：

```text theme={null}
C:\Program Files (x86)\Microsoft GDK\bin>xbwatson.exe  
```

以 IP 或主機名稱覆寫開啟 xbWatson：

```text theme={null}
C:\Program Files (x86)\Microsoft GDK\bin>xbwatson.exe /x:consoleIP  
```

透過工具啟動器從 [XBOX Manager](https://docs.xbox.com/zh-TW/tools/tools-console/xbom/xbom.md) 開啟 xbWatson，這會使用預設主機：

![xbWatson](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_launcher.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=c4e6659e51a910b853fce42deb9ad89a)

從 [XBOX Manager](https://docs.xbox.com/zh-TW/tools/tools-console/xbom/xbom.md) 以滑鼠右鍵按一下主機並選取 Launch xbWatson 來開啟 xbWatson，這會使用所選的主機：

![xbWatson](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_xbom.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=73b6b415bac18f2225c5008d54d1605d)

### 設定覆寫

啟動時，xbWatson 會載入位於 %localappdata%\Microsoft\XBOX One Development Kit\xbWatson\3.0 的預設設定檔 defaultconfig.txt。此檔案會儲存輸出索引標籤的狀態、其設定、規則以及已套用的規則。此檔案可以分享給其他 GDK 使用者，讓他們能以自訂設定快速開啟 xbWatson 工作階段。您可以執行下列動作來載入共用設定：

* 覆寫本機 defaultconfig.txt 檔案。
* 在 Windows 中，將 sharedconfig.txt 檔案拖放至 xbWatson.exe 上。
* 使用指向已儲存設定檔的命令列參數開啟 xbWatson.exe (例如 xbwatson.exe E:\MyConfig\sharedconfig.txt)

若要判斷目前載入之設定檔的位置，請查看儀表板中的 Log 索引標籤，了解正在載入的內容：`Loading configuration 'C:\Users\UserName\AppData\Local\Microsoft\XBOX One Development Kit\xbWatson\3.0\defaultConfig.txt'.`

## 功能

xbWatson 的功能可讓您在主要輸出視窗中查看與設定輸出、透過編輯器與功能表套用輸出規則、透過資料摘要功能表篩選輸出類型，以及在儀表板中管理有關記錄診斷、Game OS 處理序清單與堆疊傾印產生及管理的進階功能。

### 主要輸出視窗

主要輸出視窗由標題列、輸出索引標籤、規則編輯器與儀表板組成，如圖 1 所示。

**圖 1.  xbWatson** ![xbWatson](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_connected.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=e34e40cdc10e0d86630f7ad4f2dddd45)

### 標題列

當 xbWatson 連線至主機時，標題列會呈現綠色並顯示連線詳細資料，如圖 2 所示。

**圖 2.  標題列 (已連線)** ![標題列](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_titlebar.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=b0dcab289f41df95697f75eb3d84b7b4)

如果 xbWatson 無法連線，或無法使用開發套件服務，標題列會呈現紅色或黃色。如果您遇到這種狀態，請查看儀表板中的 Log 索引標籤以取得其他錯誤資訊。這通常是由無效的 IP 位址或開發套件主機名稱所造成。請確認您的開發套件 IP 位址與主機名稱有效，以確保 xbWatson 能正確連線至開發套件。

### 輸出索引標籤

啟動時，會有一個預設的輸出索引標籤。您可以按一下最後一個索引標籤右側的加號 (+) 來建立更多輸出索引標籤。您可以按一下輸出索引標籤右側的 x 來移除該索引標籤。您可以按一下名稱 (Output) 來重新命名索引標籤。當主機有偵錯輸出流入時，該索引標籤的活動指示燈會閃爍。您可以醒目提示或選取文字，並使用標準 Windows 複製命令在剪貼簿緩衝區之間移動，以從輸出視窗複製資料。在每個輸出索引標籤中，您都有下列選項功能表可設定該索引標籤。

#### 新增/移除規則功能表

使用新增/移除規則功能表，為目前的輸出索引標籤開啟或關閉規則，如圖 3 所示。如需建立規則的詳細資訊，請參閱本主題稍後的規則編輯器一節。

**圖 3.  新增/移除規則功能表** ![新增/移除規則功能表](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_applyrules.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=d512e8d129a6f1bda7fdf02358d1e3b0)

#### 資料摘要功能表

使用資料摘要功能表設定目前輸出索引標籤所顯示的輸出串流，如圖 4 所示。

**圖 4.  資料摘要功能表** ![資料摘要功能表](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_datafeeds.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=062d7fb7088ac20276ce3e8bd81366ed)

您可以選取或清除串流名稱旁的核取方塊來開啟或關閉輸出串流。按一下串流名稱右側的齒輪圖示，即可設定該串流中的個別選項，如圖 5 所示。

**圖 5.  摘要控制** ![摘要控制](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_feedcontrol.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=d24cd66fbe724b07962ae47ca31ab2c7)

可用的資料摘要如下表所示。

| 資料摘要 | 描述 |
| - | - |
| Output debug string | 來自復原 OS 與遊戲 OS 的偵錯輸出。 |
| Process feed | 來自遊戲 OS 的處理序變更輸出。 |
| Process debug feed | 來自所選處理序的偵錯事件輸出。從 Game OS 儀表板監視處理序後即可取得此輸出。 |
| Console event feed | 來自精選 Windows 與遙測事件清單的輸出 (目前著重於應用程式註冊與啟用)。 |
| Game memory feed | 指出主機上目前使用中與可用之遊戲及工具記憶體量的輸出。 |

### 規則編輯器

規則編輯器位於主要輸出視窗的右側，如圖 6 所示。

**圖 6.  規則編輯器** ![規則編輯器](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_ruleeditor.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=53e171afd9072bd07f41b05f908b33cd)

建立規則

1. 從左窗格按一下 **New**。系統會建立新的空白規則。
2. 為規則命名。
3. 新增條件。
   * 符合規則運算式：輸入要評估的 regex 字串。
4. 新增動作 (在成功符合條件後執行)：
   * **Change color**：開啟色彩選擇器以變更相符的文字。
   * **Acquire stack dump**：觸發所選的堆疊傾印類型。
   * **Include text**：只顯示該文字。
   * **Exclude text**：不顯示該文字。
   * **Disable this rule**：停止執行此規則。這有助於在自動化測試執行期間擷取一次堆疊傾印。
   * **Set trigger to break**：暫停處理序並準備附加偵錯工具。
   * **Invasively attach**：將 xbWatson 作為偵錯工具附加至處理序。
   * **Remove invasive attach**：移除作為偵錯工具的 xbWatson。
   * **Flash window**：在工作列中閃爍 xbWatson 圖示。
   * **Show banner message**：在輸出視窗頂端顯示橫幅訊息，並將該索引標籤的活動指示燈變為紅色以引起您的注意。
   * **Clear banner message**：移除輸出視窗頂端的橫幅訊息。
   * **Enable other rule**：為此輸出索引標籤啟用指定的規則。
   * **Disable other rule**：為此輸出索引標籤停用特定規則。
5. 儲存規則。

規則必須套用至輸出索引標籤才會生效。您可以從規則編輯器內按一下 **Apply rules** 來完成此操作，也可以關閉規則編輯器，直接透過輸出索引標籤上的 **Apply rules** 功能表套用規則。

> [!NOTE]
>
> 從規則編輯器套用規則時，請注意 **toggle multi-select** 按鈕。只會套用目前選取的規則。

### 儀表板

按一下主要輸出視窗底部的向上箭號會開啟儀表板，如圖 7 所示。儀表板最小化時，視窗左下角會有儀表板狀態指示燈。這些狀態指示燈對應於儀表板項目。它們會閃爍或變更色彩，以指出資料流動或狀態變更。

**圖 7.  儀表板** ![儀表板](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_dashboard.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=7a7a5aa54626efcdb21552aa47d04321)

#### 記錄

記錄包含與 xbWatson 本身以及 xbWatson 與開發套件之連線相關的資訊。您可以查看啟動時載入了哪個設定檔、正在聯絡哪個 IP 位址或已儲存的連接字串，以及其他有關 xbWatson 的偵錯資訊。如果與開發套件連線時發生問題，此儀表板項目會變成紅色。

#### Game OS

當開發套件上未執行遊戲時，此儀表板項目會顯示黃色，並表示無法取得處理序資料。在沒有執行遊戲的情況下，您可以查看有關開發套件設定的最小資料集。

當遊戲正在執行時，您可以查看類似 Windows 工作管理員的擴充資料。資料列的色彩表示狀態，如下所述以及如圖 8 所示。

* 綠色：處理序資料在過去五秒內發生變更。
* 紅色：處理序已結束。
* 橘色：處理序已暫停，包括偵錯 (中斷)。
* 藍色：已附加偵錯工具，包括以侵入式附加的 xbWatson。

選取資料列可讓您啟用處理序清單下方的選項。

**圖 8.  Game OS 處理序清單** ![Game OS 處理序清單](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_processlist.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=3a730de125f2ad3e4ab5be6e5ce3bf98)

* Terminate：按一下作用中的處理序，然後按一下 Terminate 按鈕即可結束該處理序。
* Break (debug)：這會暫停處理序並準備附加偵錯工具。
* Resume：這會移除偵錯中斷並繼續執行處理序。
* Monitor：將 xbWatson 附加為侵入式偵錯工具。一次只允許一個侵入式偵錯工具附加至處理序，因此以這種方式連接 xbWatson 會讓 Visual Studio 無法連線至該處理序。多個 xbWatson 執行個體會共用此附加。如果所有 xbWatson 執行個體都已關閉，就會自動中斷附加。啟用後，處理序偵錯資料摘要 (可從設定輸出串流 UI 取得) 就會開始接收資料。附加後，輸出偵錯字串會經由處理序偵錯串流傳送。
* Detach：移除作為侵入式偵錯工具的 xbWatson。

#### 記憶體傾印

使用記憶體傾印功能表產生記憶體傾印或存取靜止停止回應傾印。

可以為主機上目前執行的遊戲建立堆積、迷你或分級記憶體傾印。產生的傾印會儲存在主機本機，並可透過 **Manual Memory Dumps** 表格下方的 **Download** 按鈕下載。

只有在遊戲正在執行且能夠以這種方式產生記憶體傾印時，才能使用 **Generate** 按鈕。xbWatson 會以符合主機上已註冊之遊戲映像名稱的執行中遊戲 (處理序識別碼) 為目標。

記憶體傾印面板只有在遊戲執行時才允許管理記憶體傾印。產生與下載作業都會使儀表板忙碌指示燈閃爍，以表示正在進行活動。

如果發生暫停逾時且未附加偵錯工具，就會自動建立靜止停止回應傾印。這些傾印有助於判斷遊戲的暫停處理常式為何未在要求的時間內完成。儀表板指示燈會閃爍，表示有可用的靜止停止回應傾印。可用的停止回應傾印會列在 **Quiesce Memory Dumps** 表格中。使用表格下方的 **Download** 按鈕將靜止停止回應傾印複製到您的開發電腦。如需 Microsoft Game Development Kit (GDK) 中為偵錯[遊戲生命週期支援](https://docs.xbox.com/zh-TW/build/console-features/console-workflows/xbox-game-life-cycle.md)所需之暫停與繼續處理常式所提供功能的完整說明，請參閱[偵錯遊戲生命週期狀態之間的轉換](https://docs.xbox.com/zh-TW/tools/tools-console/visualstudio/debugging-with-visualstudio.md)。

**圖 9.  記憶體與靜止停止回應傾印** ![堆疊傾印](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_crashdump.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=f98a3922549577ee26a8704b46487d57)

#### 遊戲記憶體

以類似工作管理員的檢視方式，呈現 xbWatson 所連線之主機的狀態。

遊戲記憶體儀表板目前著重於遊戲與工具的記憶體使用量。其他統計資料 (例如 CPU 或檔案 IO 統計資料) 將在未來的版本中新增。

![xbWatson 中的遊戲記憶體儀表板](https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbwatson_system_monitor.png?fit=max\&auto=format\&n=5IpvKlT-jmAaVkeY\&q=85\&s=d04b22f345d028baa16df1a7014e9a12)

如需此儀表板上所提供圖表的說明，請參閱 [XBOX System Monitor](https://docs.xbox.com/zh-TW/tools/tools-console/visualstudio/xbox-system-monitor.md)。

## 另請參閱

[XBOX 主機遊戲開發 (環境與工具)](https://docs.xbox.com/zh-TW/tools/tools-console/gc-tools-console-toc.md) [擷取當機傾印](https://docs.xbox.com/zh-TW/build/console-features/debugging-diagnostics/retrieving-crash-dumps.md)


## Related topics

- [XBOX 的 xbWatson 偵錯輸出監視器](https://docs.xbox.com/zh-TW/tools/tools-console/xbWatson/index.md)
- [適用於 XBOX 的主機型命令列工具](https://docs.xbox.com/zh-TW/tools/tools-console/console_commandlinetools/index.md)
- [適用於 XBOX GDK 的 HLSL 著色器編譯器 (DXC)](https://docs.xbox.com/zh-TW/tools/tools-console/shadercompiler/index.md)
- [XBOX 遊戲的 Title Performance Overlay](https://docs.xbox.com/zh-TW/tools/tools-console/titleperfoverlay/index.md)
- [命令列工具](https://docs.xbox.com/zh-TW/tools/tools-console/commandlinetools/index.md)
