Skip to main content
Visual Studio 内から XBOX Microsoft Game Development Kit (GDK) プロジェクトをデバッグするには、Microsoft Game Development Kit (GDK) の一部としてインストールされる XBOX Debugger コンポーネントを使用します。Visual Studio 2019 および 2022 がサポートされています。次のスクリーンショットに示すとおり、XBOX Debugger は、プラットフォームが Gaming.Xbox.One.x64 または Gaming.Xbox.Scarlett.x64 のすべてのプロジェクトに対する既定のデバッガーです。 Visual Studio の標準ツールバーのスクリーンショット。Solution Platforms ドロップダウン リストに Gaming.Xbox.One.x64 と Gaming.Xbox.Scarlett.x64 プラットフォームが表示され、既定のデバッガーとして XBOX Debugger が示されている

Visual Studio デバッガーの構成

Visual Studio 内から F5 でデバッガーが起動されると、XBOX ManagerxbConnect など他の Microsoft Game Development Kit (GDK) ツールで設定した既定のコンソールが既定で使用されます。この動作をオーバーライドするには、次のスクリーンショットのように、プロジェクトのプロパティ ページの XBOX One セクションにある Remote IP Address プロパティを使用してコンソールを指定します。 Visual Studio プロジェクトのプロパティ ページ ダイアログ ボックスの XBOX One セクションのスクリーンショット。コンテンツ ペインに Remote IP Address プロパティが表示されている Visual Studio のデバッグ ツールバーには、F5 または Ctrl-F5 で起動したときにタイトルがデプロイされるコンソールを示すドロップダウンがあります。ドロップダウンにはボタンがあり、ターゲット コンソールを変更する必要がある場合にプロジェクトのプロパティ ページにすばやくアクセスできます。 Visual Studio の Target Device ドロップダウン デバッガーは XBOX Gaming Explorer からも起動できます。この場合、使用されるコンソールは、次のスクリーンショットに示すように、XBOX Gaming Explorer の上部にある接続リボンで識別されているものです。 Visual Studio の XBOX Gaming Explorer のスクリーンショット。XBOX Gaming Explorer 上部の接続リボンで識別されているコンソール用のタイトルのコンテキスト メニューから、Debug Title メニュー項目が強調表示されている

シンボル パス

いくつかの Game OS コンポーネントのプログラム データベース (.pdb) ファイルは、Visual Studio でデバッグするときに使用できます。これらのシンボルを使用できるように Visual Studio を構成すると、たとえばデバッガーで中断したときにより完全なコール スタックが得られます。 Game OS のシンボルの一部は Microsoft Game Development Kit (GDK) セットアップによって開発 PC にインストールされ、その他は Microsoft のパブリック シンボル サーバー上で利用可能です。 セットアップによってインストールされる Game OS のシンボルは、開発 PC 上の C:\Program Files (x86)\Microsoft GDK<edition number>\GXDK\gameKit\symbols にあります。プラットフォーム非依存の .pdb はシンボル フォルダーのルートにあります。プラットフォーム固有の .pdb は Xbox Series X|S および XboxOne サブディレクトリにあります。 ローカル PC 上の Game OS シンボル ディレクトリへのパスを追加するには、次のスクリーンショットに示すように、Visual Studio の Options ダイアログ ボックスの Debugging セクションの Symbols 設定を使用します。 Visual Studio Options ダイアログ ボックスの Debugging セクションの Symbols ペインのスクリーンショット。Symbol file (.pdb) locations 一覧に Game OS シンボルへのパスが選択されている Microsoft パブリック シンボル サーバーで利用可能な Game OS シンボルにアクセスするには、Symbols ダイアログの Microsoft Symbol Servers チェック ボックスをオンにします。Microsoft シンボル サーバーをシンボル ファイルの場所として追加すると、Visual Studio はタイトルによって読み込まれるすべてのバイナリについてシンボル サーバーを検索します。徹底的なシンボル検索は時間がかかることがあります。この検索時間を短縮するには、Visual Studio を構成して、タイトルが使用する特定のバイナリ セットについてのみ .pdb を検索するようにします。Visual Studio が .pdb を検索するバイナリ セットを指定するには、Options ダイアログ ボックスの Load only specified modules オプションを使用します。次のスクリーンショットは、いくつかの選択されたバイナリに対してのみパブリック シンボル サーバーからシンボルを読み込むように構成された Visual Studio を示しています。 Visual Studio Options ダイアログ ボックスの Debugging セクションの Symbols ペイン上に Load only specified modules オプションを選択して表示された、自動的に読み込むシンボルのダイアログ ボックスのスクリーンショット

デバッグに関連するプロパティ

デバッガーは、プロジェクトのプロパティ ダイアログ ボックスおよび XBOX Gaming ExplorerSettings タブで公開されているプロパティ セットを通じてさらに構成できます。これらのプロパティには、たとえばタイトルにコマンド ライン引数を渡す機能やモジュール読み込みログのオン/オフなどが含まれます。利用可能なプロパティの詳細については、XBOX 開発向けの Visual Studio プロパティ および XBOX Gaming Explorer を参照してください。

実行中のタイトルへのアタッチ

XBOX メニューおよび XBOX Gaming Explorer には、コンソール上で実行中のゲームにデバッガーをアタッチするためのメニュー オプションが含まれています。 現在既定のコンソールで実行中のゲームにアタッチするには、XBOX メニューの Attach to Running Game を使用します。XBOX メニューは次のスクリーンショットに示すように Visual Studio のメニュー バーからアクセスできます。 Visual Studio の Extensions メニューの下の XBOX メニューのスクリーンショット。Attach to Running Game メニュー項目が表示されている XBOX Gaming Explorer で追加した任意のコンソール上で実行中のゲームにもアタッチできます。Home タブの Game Processes および Titles セクションのコンテキスト メニューには、次のスクリーンショットに示すように、実行中のゲームにアタッチするためのメニュー項目が含まれています。 Visual Studio の XBOX Gaming Explorer のスクリーンショット。現在のコンソールのゲーム プロセスのコンテキスト メニューから Attach メニュー項目が強調表示されている Consoles タブの特定のコンソールのコンテキスト メニューは、次のスクリーンショットに示すように、そのコンソール上で実行中のゲームにアタッチします。 Visual Studio の XBOX Gaming Explorer の Consoles タブのスクリーンショット。コンソールのコンテキスト メニューから Attach to Game Process メニュー項目が強調表示されている Visual Studio の Debug メニューの下の Attach ダイアログを使用して、実行中のタイトルにアタッチすることもできます。Visual Studio 2022 を使用する場合、Connection Type ドロップダウンで XBOX Direct Connection を選択し、Connection Target テキスト ボックスにコンソールの Host IP アドレスまたは System IP アドレスのいずれかを入力します。Host IP と System IP アドレスは xbconnect コマンド ライン ツールを使用して特定できます。
Host IP または System IP アドレスのいずれかでタイトルにアタッチできますが、単一セッションで複数回アタッチする場合、2 つを混在させないようにしてください。たとえば、最初に Host IP でアタッチした場合は、その後も Host IP を使用してください。
Visual Studio 2022 のアタッチ ダイアログの使用 Visual Studio 2019 を使用する場合、Connection Type ドロップダウンで Remote No Authentication を選択し、Connection Target テキスト ボックスにコンソールの Host IP アドレスを入力します。

Visual Studio 2022 を使用した XBOX プロジェクトのデバッグ

Visual Studio 2022 でのデバッグには、デバッグ対象のタイトルが 2021 年 10 月 (以降) の Microsoft Game Development Kit (GDK) でビルドされていることが必要です。2021 年 10 月 (以降) の Microsoft Game Development Kit (GDK) への依存は、それらのバージョンの Microsoft Game Development Kit (GDK) に同梱される Game OS が Visual Studio 2022 でのデバッグに必要なバイナリを含むためです。より古い Game OS に対して Visual Studio 2022 でのデバッグを試みると、以下のエラーが表示されます。 2022 年 3 月 GDK に同梱されたバージョンよりも古い Game OS に対して Visual Studio 2022 デバッガーを使用しようとする

パッケージ ビルドのデバッグ

XBOX One Software Development Kit のリリースでは、パッケージ ビルドをデバッグするワークフローに Visual Studio の Debug Installed App Packages メニュー項目の使用が含まれていました。このワークフローは、このセクションで説明するように、Microsoft Game Development Kit (GDK) の 2019 年 9 月リリースで大幅に簡素化されました。
XBOX Gaming Explorer のデバッガー下でのタイトル起動や、実行中のタイトルへのアタッチのためのコンテキスト メニュー オプションは、ルーズ ファイル デプロイと同様にパッケージ ビルドでも同様に機能します。 ストリーミング インストール パッケージは、次のスクリーンショットに示すように、XBOX Gaming Explorer では Install デプロイ タイプとアイコンで識別されます。 Visual Studio の XBOX Gaming Explorer のスクリーンショット。現在のコンソール用の Titles 一覧内のタイトル アイコンで識別されるパッケージ ビルドのドロップダウン メニューから Debug Title メニュー項目が強調表示されている

Game Lifecycle 状態間の遷移のデバッグ

Game Lifecycle を適切にサポートするには、full、suspended、constrained のライフサイクル状態間の遷移用のイベント ハンドラーを記述する必要があります。Visual Studio は、Game Lifecycle 状態遷移を成功裡に通過するためにタイトルに必要な堅牢なイベント ハンドラーを記述するのに役立つ機能をいくつか提供します。 XBOX Gaming Explorer のコンテキスト メニューには、開発キットでハンドラーをデバッグできるように、タイトルを SuspendResumeConstrain するオプションがあります。 Visual Studio の XBOX Gaming Explorer のスクリーンショット。現在のコンソールで Constrained 状態のタイトルのコンテキスト メニューから Unconstrain メニュー項目が強調表示されている。 これらの状態遷移は XBOX ManagerxbApp コマンド ライン ツールからも手動でトリガーできることに注意してください。 状態遷移のトリガー方法に関係なく、遷移とその失敗を説明する診断メッセージは xbWatson および Visual Studio 内の XBOX System Monitor ウィンドウで表示できます。 リテール環境では、Suspend イベントのハンドラーは 1 秒未満で完了する必要があり、そうでない場合、システムはタイトルを終了させます。このサスペンド時間制限は、明らかに開発キットで常に強制されるべきではなく、そうでなければ Suspend ハンドラーのデバッグはほぼ不可能です。 既定では、Visual Studio デバッガー (または他のユーザー モード デバッガー) がアタッチされている場合、1 秒のサスペンド タイムアウトは無効になり、デバッグ タスクを完了するのに必要な時間をかけられます。 Visual Studio デバッガーは、アタッチされているときにサスペンド タイムアウトを再度有効にするように構成することもできます。このモードでは、Suspend ハンドラーが 1 秒の制限内に完了しない場合、デバッガーが強制的にブレークするため、時間制限が満了した時点で Suspend ハンドラーがどこにあったかを確認できます。このモードでデバッガーを実行すると、Suspend ハンドラーが時間制限を超過する頻度と理由を把握するのに役立ちます。Visual Studio の Break On Suspend Timeout プロパティを設定して、サスペンド タイムアウトを有効にするモードにデバッガーを設定します。このモードで発生するデバッグ ブレークは、デバッガーがプロセスに注入する新しいスレッドで行われます。Suspend ハンドラーを含むスレッドに移動してデバッグを開始します。 Break On Suspend Timeout プロパティ サスペンド タイムアウトが発生したときにタイトルにデバッガーがアタッチされていない場合、システムは quiesce クラッシュ ダンプを作成します。これらのダンプは xbWatson の Memory Dump パネル を使用してアクセスできます。

Visual Studio 2022 の C++ 動的デバッグ

C++ Dynamic Debugging は、パフォーマンスを損なうことなく最適化コードに対して完全なデバッグ体験を提供する新しいデバッグ機能です。オンデマンドの関数の脱最適化により、脱最適化ブレークポイントを配置し、どこからでもステップ実行できます。C++ Dynamic Debugging を有効化するには、プロジェクトを右クリックし、Properties > Configuration Properties > Advanced > Advanced Properties > Use C++ Dynamic Debugging (preview) を選択します。動的デバッグ機能を使用するには、Visual Studio 2022 のバージョン 17.14 Preview 2 以降が必要です。詳細は https://aka.ms/dynamicdebugging を参照してください。
C++ Dynamic Debugging の使用に必要な Visual Studio のバージョン (バージョン 17.14) は、2025 年 4 月 GDK 以降にリリースされる予定です。Visual Studio のバージョン 17.14 のリリース後、C++ Dynamic Debugging に必要な C++ デバッグ モニター (msvsmon.exe) を含む GDK アップデートがリリースされます。その GDK アップデートがリリースされる前に C++ Dynamic Debugging を使用したい場合は、C++ デバッグ モニターの適切なバージョンをコンソールに読み込む方法について、Microsoft アカウント マネージャーにお問い合わせください。

関連項目

XBOX Gaming Explorer Visual Studio
最終更新日 2026年8月24日