- システム全体のデバッグ出力と重要なシステム イベントを収集する
- ルール エディターを使用して出力をフィルターおよびカスタマイズする
- 複数の出力タブで出力ストリームを分ける
- カスタマイズしたルールと設定を保存および配布する
- 詳細なプロセス監視と制御を取得する
- トリアージ、ヒープ、ミニ メモリ ダンプを作成および管理する
目次
xbWatson を開く
xbWatson は、GDK コマンド プロンプト、XBOX Manager、またはスタート メニューから xbWatson を検索することで開けます。コマンド ラインでテスト コンソールの IP またはホスト名を指定してオーバーライドしない限り、xbWatson は既定のコンソールに接続します。 コマンド ラインから xbWatson を開き、既定のコンソールを使用する:構成のオーバーライド
起動時、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)
Loading configuration ‘C:\Users\UserName\AppData\Local\Microsoft\Xbox One Development Kit\xbWatson\3.0\defaultConfig.txt’.
機能
xbWatson には、メイン出力ウィンドウでの出力の表示と構成、エディターおよびメニュー経由での出力ルールの適用、データ フィード メニュー経由での出力タイプのフィルタリング、Dashboard 上での Log 診断、Game OS プロセス リスト、およびスタック ダンプの生成と管理に関する高度な機能の管理を可能にする機能があります。メイン出力ウィンドウ
メイン出力ウィンドウは、図 1 に示すように、タイトル バー、出力タブ、Rule Editor、および Dashboard で構成されます。 図 1. xbWatson
タイトル バー
xbWatson がコンソールに接続されている場合、図 2 に示すようにタイトル バーは緑色で接続の詳細が表示されます。 図 2. タイトル バー (接続時)出力タブ
起動時には既定の出力タブが 1 つあります。最後のタブの右側にあるプラス記号 (+) をクリックして、さらに出力タブを作成できます。タブの右側の x をクリックして出力タブを削除できます。名前 (Output) をクリックしてタブの名前を変更できます。コンソールからデバッグ出力が流れている場合、そのタブのアクティビティ ライトが点滅します。データは、出力ウィンドウでテキストをハイライトまたは選択し、標準の Windows コピー コマンドを使用してクリップボード バッファーとの間で移動することでコピーできます。各出力タブ内には、そのタブを構成するための以下のオプション メニューがあります。Add/Remove Rules メニュー
図 3 に示すように、Add/Remove Rules メニューを使用して現在の出力タブに対してルールをオン/オフします。ルールの作成に関する詳細については、このトピックの後半の Rules Editor セクションを参照してください。 図 3. Add/Remove Rules メニュー
Data feeds メニュー
図 4 に示すように、Data feeds メニューを使用して、現在の出力タブに表示される出力ストリームを構成します。 図 4. Data feeds メニュー
出力ストリームは、ストリーム名の隣のチェック ボックスを選択またはクリアしてオン/オフできます。図 5 に示すように、ストリーム名の右側の歯車アイコンをクリックして、そのストリーム内の個別のオプションを構成できます。
図 5. フィード コントロール
利用可能なデータ フィードを次の表に示します。
Rule Editor
図 6 に示すように、Rule Editor はメイン出力ウィンドウの右側にあります。 図 6. Rule Editor
ルールを作成するには
- 左側のペインから [New] をクリックします。新しい空のルールが作成されます。
- ルールに名前を付けます。
- 新しい条件を追加します。
- 正規表現に一致: 評価する正規表現文字列を入力します。
- アクションを追加します (条件に一致した後に実行される):
- Change color: マッチしたテキストを変更するカラー ピッカーを開きます。
- Acquire stack dump: 選択したスタック ダンプ タイプをトリガーします。
- Include text: テキストのみを表示します。
- Exclude text: テキストを表示しません。
- Disable this rule: このルールの実行を停止します。これは、自動テスト実行中にスタック ダンプを 1 回だけ取得できるようにする場合に便利です。
- 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: この出力タブに対して指定されたルールを無効化します。
- ルールを保存します。
ルール エディターからルールを適用する際は、[toggle multi-select] ボタンに注意してください。現在選択されているルールのみが適用されます。
Dashboard
図 7 に示すように、メイン出力ウィンドウの下部の上矢印をクリックすると、Dashboard が開きます。Dashboard が最小化されている場合、ウィンドウの左下隅に Dashboard のステータス ライトがあります。これらのステータス ライトは Dashboard の項目に対応しています。データ フローまたはステータス変更を示すために点滅または色が変わります。 図 7. DashboardLog
Log には、xbWatson 自体、および xbWatson と開発キットとの接続に関連する情報が含まれます。起動時に読み込まれた構成ファイル、接続されている IP アドレスまたは保存された接続文字列、および xbWatson に関するその他のデバッグ情報を確認できます。この Dashboard 項目は、開発キットとの接続に問題があると赤色になります。Game OS
開発キットでタイトルが実行されていない場合、この Dashboard 項目は黄色で表示され、プロセス データが利用できないことを示します。タイトルが実行されていなくても、開発キットの設定に関する最小限のデータ セットを確認できます。 タイトルが実行されている場合、Windows タスク マネージャーに似た拡張データを確認できます。行の色は次のとおり、および図 8 に示すとおりステータスを示します。- 緑: 過去 5 秒以内にプロセス データに変更が発生しました。
- 赤: プロセスは終了しました。
- オレンジ: プロセスは中断されています (デバッグ (break) を含みます)。
- 青: xbWatson を侵襲的アタッチとしたものを含め、デバッガがアタッチされています。
- Terminate: アクティブなプロセスをクリックしてから [Terminate] ボタンをクリックすると、プロセスが終了します。
- Break (debug): プロセスを中断し、デバッガのアタッチに備えます。
- Resume: デバッグ ブレークを削除し、プロセスを再開します。
- Monitor: xbWatson を侵襲的デバッガとしてアタッチします。プロセスには一度に 1 つの侵襲的デバッガしかアタッチできないため、この方法で xbWatson を接続すると Visual Studio のプロセスへの接続が妨げられます。複数の xbWatson インスタンスはこのアタッチを共有します。xbWatson のすべてのインスタンスが閉じられると、デタッチは自動的に行われます。有効にすると、プロセス デバッグ データ フィード (出力ストリーム構成 UI で利用可能) がデータを受信し始めます。アタッチ後、出力デバッグ文字列はプロセス デバッグ ストリームを通ります。
- Detach: xbWatson を侵襲的デバッガから削除します。
メモリ ダンプ
Memory Dump メニューを使用して、メモリ ダンプを生成するか、quiesce ハング ダンプにアクセスします。 コンソールで現在実行中のタイトルに対して、ヒープ、ミニ、またはトリアージ メモリ ダンプを作成できます。生成されたダンプはコンソール上にローカルに保存され、[Manual Memory Dumps] テーブルの下にある [Download] ボタンでダウンロードできます。 [Generate] ボタンは、タイトルが実行中で、この方法でメモリ ダンプを生成できる場合にのみ使用できます。xbWatson は、コンソールに登録されているゲーム イメージ名と一致する実行中のゲーム (プロセス ID) をターゲットにします。 Memory Dump パネルは、タイトルが実行中の場合にのみメモリ ダンプの管理を許可します。生成とダウンロードの両方の操作により、Dashboard のビジー ライトが点滅し、アクティビティを示します。 サスペンド タイムアウトが発生し、デバッガがアタッチされていない場合、Quiesce ハング ダンプが自動的に作成されます。これらのダンプは、タイトルのサスペンド ハンドラーが必要な時間内に完了しなかった理由を判断するのに役立ちます。Dashboard ライトが点滅して、Quiesce ハング ダンプの利用可能性を示します。利用可能なハング ダンプは [Quiesce Memory Dumps] テーブルに一覧表示されます。テーブルの下にある [Download] ボタンを使用して、Quiesce ハング ダンプを開発 PC にコピーします。Game Lifecycle サポート に必要なサスペンドとレジューム ハンドラーのデバッグのために Microsoft Game Development Kit (GDK) で提供される機能の完全な説明については、Game Lifecycle 状態間の遷移のデバッグ を参照してください。 図 9. Memory と Quiesce ハング ダンプ
