デバッグ セッションを開始する方法 (Visual C++、Visual C#、および Visual Basic)
このトピックでは、Visual C++、Visual C#、または Visual Basic で記述された Windows 8 Windows ストア アプリのデバッグ セッションを開始する方法について説明します。アプリのデバッグには、デバッグ セッションの構成と、アプリの起動方法の選択の両方が関係します。
このトピックの内容
デバッグを開始する簡単な方法
デバッグ セッションを構成する
プロジェクトのデバッグ プロパティ ページを開く
ビルド構成オプションを選択する
配置ターゲットを選択する
使用するデバッガーを選択する
(省略可能) デバッグ セッションの開始を遅らせる
(省略可能) ネットワーク ループバックを無効にする
(省略可能) デバッグの開始時にアプリケーションを再インストールする
(省略可能) リモート デバッガーを起動するための認証要件を無効にする
デバッグ セッションを開始する
デバッグを開始する (F5)
デバッグは開始する (F5 キー) がアプリの起動は遅らせる
デバッガーでインストール済みのアプリを起動する
実行中のアプリにデバッガーをアタッチする
デバッグ モードで実行するようにアプリを設定する
デバッガーをアタッチします。
デバッグを開始する簡単な方法
Visual Studio でアプリ ソリューションを開きます。
F5 キーを押します。
Visual Studio によってアプリがビルドされ、アタッチされたデバッガーが起動します。実行は、ブレークポイントに達するか、実行が手動で中断されるか、ハンドルされていない例外が発生するか、アプリが終了するまで続行されます。詳細については、「クイック スタート: デバッガーのナビゲーション (Xaml および C#)」を参照してください。
デバッグ セッションを構成する
プロジェクトのデバッグ プロパティ ページを開く
ソリューション エクスプローラーでプロジェクトを選択します。ショートカット メニューの [プロパティ] をクリックします。
次の方法でプロジェクトのデバッグ プロパティ ページを開きます。
Visual C# アプリと Visual Basic アプリの場合は、[デバッグ] をクリックします。
Visual C++ アプリの場合は、[構成プロパティ] ノードを展開し、[デバッグ] をクリックします。
ビルド構成オプションを選択する
[構成] ボックスの一覧の [デバッグ] または [(アクティブ) デバッグ] をクリックします。
[プラットフォーム] ボックスの一覧で、ビルドするターゲット プラットフォームを選択します。ほとんどの場合、[Any CPU] (Visual C++ では [すべてのプラットフォーム]) が最も適しています。
配置ターゲットを選択する
Visual Studio コンピューター、ローカル コンピューター上の Visual Studio シミュレーター、またはリモート デバイス上にアプリを配置してデバッグできます。
C# アプリと Visual Basic アプリの場合は、プロジェクトの [デバッグ] プロパティ ページの [ターゲット デバイス] ボックスの一覧からターゲットを選択します。
C++ アプリの場合は、[デバッグ] プロパティ ページの [起動するデバッガー] ボックスの一覧からターゲットを選択します。
次のオプションのいずれかを選択します。
ローカル コンピューター |
ローカル コンピューターの現在のセッションでアプリをデバッグします。「ローカル コンピューターでの Windows ストア アプリの実行」を参照してください。 |
シミュレーター |
Windows ストア アプリ用の Visual Studio シミュレーターでアプリをデバッグします。シミュレーターは、ローカル コンピューターでは使用できないデバイスの機能 (タッチ ジェスチャやデバイスの回転など) をデバッグできるようにするデスクトップ ウィンドウです。「シミュレーターでの Windows ストア アプリの実行」を参照してください。 |
リモート コンピューター |
ローカル コンピューターにイントラネットを介して接続されているかイーサネット ケーブルを使用して直接接続されているデバイス上のアプリをデバッグします。リモートでデバッグするには、リモート デバイス上に Visual Studio リモート ツールがインストールされ、実行されている必要があります。「リモート コンピューターでの Windows ストア アプリの実行」を参照してください。 |
[リモート コンピューター] をクリックした場合は、次のいずれかの方法でリモート コンピューターの IP アドレスを指定します。
リモート コンピューターの IP アドレスを入力します。
C# アプリと Visual Basic アプリの場合は、[リモート コンピューター] ボックスに名前または IP アドレスを入力します。
C++ アプリの場合は、[コンピューター名] ボックスに名前または IP アドレスを入力します。
[リモート デバッガー接続の選択] ダイアログ ボックスでリモート コンピューターを選択します。
このダイアログ ボックスを開くには:
Visual C# アプリと Visual Basic アプリの場合は、[検索] をクリックします。
C++ アプリの場合は、[コンピューター名] ボックスの下向き矢印をクリックし、[<検索...>] をクリックします。
注意
[リモート デバッガー接続の選択] ダイアログ ボックスには、ローカル サブネット上にあるコンピューターとイーサネット ケーブルによって Visual Studio コンピューターに直接接続されているコンピューターが表示されます。別のコンピューターを指定するには、[コンピューター名] ボックスに名前を入力します。
使用するデバッガーを選択する
既定では、Visual Studio は C# アプリと Visual Basic アプリのマネージ コードをデバッグします。
C# アプリと Visual Basic アプリでは、アプリのマネージ C/C++ コードとネイティブ C/C++ コードの両方をデバッグすることを選択できます。デバッグ セッションにネイティブ コードを含めるには [アンマネージ コード デバッグを有効にする] チェック ボックスをオンにします。
既定では、Visual Studio は C++ アプリのネイティブ コードをデバッグします。
C++ アプリでは、ネイティブ コードの代わりに、またはネイティブ コードに加えて、アプリのコンポーネントで使用されている特定の種類のコードをデバッグすることを選択できます。デバッグするコードは、アプリ プロジェクトの [デバッグ] プロパティ ページの [デバッガーの種類] の一覧で指定します。
[デバッガーの種類] の一覧から次のデバッガーのいずれかを選択します。
スクリプトのみ |
アプリの JavaScript コードをデバッグします。マネージ コードとネイティブ コードは無視されます。 |
ネイティブのみ |
アプリのネイティブ コードと C/C++ コードをデバッグします。マネージ コードと JavaScript コードは無視されます。 |
マネージのみ |
アプリのマネージ コードをデバッグします。JavaScript コードとネイティブ C/C++ コードは無視されます。 |
混合 (マネージとネイティブ) |
アプリのネイティブ C/C++ コードとマネージ コードをデバッグします。JavaScript コードは無視されます。 |
GPU のみ |
別個のグラフィックス カード上の GPU (Graphics Processing Unit) で実行されるネイティブ C++ コードをデバッグします。 |
(省略可能) デバッグ セッションの開始を遅らせる
既定では、Visual Studio はデバッグの開始と同時にアプリを起動します。デバッグ セッションは開始するが、アプリの起動は遅らせることもできます。このオプションを選択すると、アプリは、スタート画面から起動されたとき、アクティブ化コントラクトによって起動されたとき、または別のプロセスやメソッドによって起動されたときに、デバッガー内で起動します。アプリケーション自体が実行されていないときにバックグラウンド タスクをデバッグすると、アプリケーションの起動が遅くなります。
アプリの起動を遅らせるには:
Visual C# アプリと Visual Basic アプリの場合は、[デバッグ] プロパティ ページの [起動しないが、開始時にコードをデバッグ] をクリックします。
Visual C++ アプリの場合は、[デバッグ] プロパティ ページの [アプリケーションの起動] ボックスの一覧の [はい] をクリックします。
(省略可能) ネットワーク ループバックを無効にする
セキュリティ上の理由から、標準的な方法でインストールされた Windows ストア アプリは、インストール先のデバイスに対してネットワーク呼び出しを行うことはできません。既定では、Visual Studio による配置では、配置されたアプリに対するこの規則の適用は免除されます。この免除によって、1 台のコンピューター上で通信プロシージャをテストできます。Windows ストアにアプリを送信する前に、この免除なしでアプリをテストする必要があります。
ネットワーク ループバックの免除を削除するには:
Visual C# アプリおよび Visual Basic アプリの場合、[デバッグ] プロパティ ページの [ネットワーク ループバックの許可] チェック ボックスをオフにします。
Visual C++ アプリの場合は、[デバッグ] プロパティ ページの [ネットワーク ループバックの許可] ボックスの一覧の [いいえ] をクリックします。
(省略可能) デバッグの開始時にアプリケーションを再インストールする
Visual C# または Visual Basic アプリケーションのインストールと初期化に関する問題を診断するには、デバッグの開始時に元のインストールを再作成するように [デバッグ] プロパティ ページの [Uninstall and then reinstall my package] (パッケージをアンインストールしてから再インストールする) をクリックします。このオプションは、Visual C++ プロジェクトでは使用できません。
(省略可能) リモート デバッガーを起動するための認証要件を無効にする
既定では、リモート デバッガーを実行するために資格情報を指定する必要があります。
セキュリティに関するメモ |
---|
リモート デバッガーを認証なしモードで実行することも選択できますが、このモードの使用は避けることを強く推奨します。このモードで実行した場合、ネットワーク セキュリティはまったく提供されません。認証なしモードは、ネットワークに悪意のあるコードや悪意のあるトラフィックのリスクがないことが確実である場合のみ選択してください。 |
認証要件を削除するには:
Visual C# アプリおよび Visual Basic アプリの場合、[デバッグ] プロパティ ページの [認証を使用] チェック ボックスをオフにします。
Visual C++ アプリの場合は、[デバッグ] プロパティ ページの [認証が必要] ボックスの一覧の [いいえ] をクリックします。
デバッグ セッションを開始する
デバッグを開始する (F5)
[デバッグ] メニューの [デバッグの開始] をクリックする (キーボードの場合は F5 キーを押す) と、デバッガーがアタッチされた状態でアプリが起動します。実行は、ブレークポイントに達するか、実行が手動で中断されるか、例外が発生するか、アプリが終了するまで続行されます。
デバッグは開始する (F5 キー) がアプリの起動は遅らせる
デバッグ モードで実行されるようにアプリを設定し、デバッガー以外の方法でアプリを起動できます。たとえば、[スタート] メニューからのアプリの起動をデバッグしたり、アプリを起動せずにアプリのバックグラウンド プロセスをデバッグしたりできます。アプリの起動を遅らせるには、次の手順を実行します。
アプリの [デバッグ] プロパティ ページで (Visual C++ のデバッグ)
Visual C# アプリと Visual Basic アプリの場合は、[起動しないが、開始時にコードをデバッグ] をクリックします。
Visual C++ アプリの場合は、[アプリケーションの起動] の一覧の [Yes] をクリックします。
[デバッグ] メニューの [デバッグの開始] をクリックします (キーボードの場合: F5 を押します)。
[スタート] メニュー、実行コントラクト、または別のプロシージャからアプリを起動します。
アプリがデバッグ モードで起動します。実行は、ブレークポイントに達するか、実行が手動で中断されるか、ハンドルされない例外が発生するか、アプリが終了するまで続行されます。
.バックグラウンド タスクのデバッグの詳細については、「Windows ストア アプリの中断イベント、再開イベント、およびバックグラウンド イベントをトリガーする方法」を参照してください。
デバッガーでインストール済みのアプリを起動する
F5 キーを使用してデバッグを開始すると、Visual Studio はアプリをビルドして配置し、デバッグ モードで実行されるようにアプリを設定してから起動します。デバイスに既にインストールされているアプリを起動するには、[インストールされているアプリケーション パッケージのデバッグ] ダイアログ ボックスを使用します。この方法は、Windows ストアからインストールされたアプリをデバッグする必要がある場合や、アプリのソース ファイルはあってもアプリの Visual Studio プロジェクトがない場合に役立ちます。Visual Studio プロジェクトやソリューションを使用しないカスタム ビルド システムがこれに該当します。
アプリはローカル デバイスにインストールすることも、リモート デバイスにインストールすることもできます。アプリをすぐに起動できます。また、アプリを別のプロセスや方法で起動したときに ([スタート] メニューからの起動や、アクティブ化コントラクトによる起動など)、デバッガーで実行するようにアプリを設定することもできます。アプリを起動せずにバックグラウンド プロセスをデバッグする場合は、デバッグ モードで実行されるようにアプリを設定できます。詳細については、「Windows ストア アプリの中断イベント、再開イベント、およびバックグラウンド イベントをトリガーする方法」を参照してください。
インストール済みのアプリがデバッグ モードで実行されるように設定するには、次の手順を実行します。
注意
この手順は、アプリが実行されていないときに開始してください。
[デバッグ] メニューの [インストールされているアプリケーション パッケージのデバッグ] をクリックします。
一覧から次のいずれかのオプションを選択します。
ローカル コンピューター
ローカル コンピューターの現在のセッションでアプリをデバッグします。「ローカル コンピューターでの Windows ストア アプリの実行」を参照してください。
シミュレーター
Windows ストア アプリ用の Visual Studio シミュレーターでアプリをデバッグします。シミュレーターは、ローカル コンピューターでは使用できないデバイスの機能 (タッチ ジェスチャやデバイスの回転など) をデバッグできるようにするデスクトップ ウィンドウです。「シミュレーターでの Windows ストア アプリの実行」を参照してください。
リモート コンピューター
ローカル コンピューターにイントラネットを介して接続されているかイーサネット ケーブルを使用して直接接続されているデバイス上のアプリをデバッグします。リモートでデバッグするには、リモート デバイス上に Visual Studio リモート ツールがインストールされ、実行されている必要があります。「リモート コンピューターでの Windows ストア アプリの実行」を参照してください。
[インストールされているアプリケーション パッケージ] ボックスの一覧からアプリを選択します。
[このコードの種類をデバッグ] ボックスの一覧から、使用するデバッグ エンジンを選択します。
(省略可能) 他の方法で起動したアプリをデバッグするときや、バックグラウンド プロセスをデバッグするときは、[起動しないが、開始時にコードをデバッグ] を選択します。
[開始] をクリックすると、アプリが起動するか、デバッグ モードで実行するように設定されます。
実行中のアプリにデバッガーをアタッチする
Windows ストア アプリにデバッガーをアタッチするには、デバッグ可能パッケージ マネージャーを使用して、デバッグ モードで実行するようにアプリを設定する必要があります。デバッグ可能パッケージ マネージャーは、Visual Studio リモート ツールと共にインストールされます。
アプリへのデバッガーのアタッチは、インストール済みのアプリ (Windows ストア からインストールされたアプリなど) をデバッグする場合に役に立ちます。アタッチは、アプリのソース ファイルはあるが、アプリの Visual Studio プロジェクトがない場合に必要です。Visual Studio プロジェクトやソリューションを使用しないカスタム ビルド システムがこれに該当します。
アプリにデバッガーをアタッチするには、次の手順に従う必要があります。
デバッグ モードで実行するようにアプリを設定します。これは、アプリが実行されていないときに行う必要があります。
アプリを起動します。アプリの起動は、スタート画面、実行コントラクト、または他の方法で実行できます。
実行中のアプリにデバッガーをアタッチします。
デバッグ モードで実行するようにアプリを設定する
アプリをインストールするデバイスに Visual Studio リモート ツールをインストールします。「リモート ツールのインストール」を参照してください。
スタート画面でDebuggable Package Managerを検索して起動します。
AppxDebug コマンドレット用に適切に構成された PowerShell ウィンドウが表示されます。
アプリのデバッグを有効にするには、アプリの PackageFullName 識別子を指定する必要があります。PackageFullName を含むすべてのアプリの一覧を表示するには、PowerShell プロンプトに「Get-AppxPackage」と入力します。
PowerShell プロンプトに「Enable-AppxDebug PackageFullName」と入力します。PackageFullName はアプリの PackageFullName 識別子です。
デバッガーをアタッチします。
デバッガーをアタッチするには:
[デバッグ] メニューの [プロセスにアタッチ] をクリックします。
[プロセスにアタッチ] ダイアログ ボックスが表示されます。
リモート デバイス上のアプリにアタッチするには、[修飾子] ボックスにリモート デバイスを指定します。次の操作を行うことができます。
[修飾子] ボックスに名前を入力します。
[修飾子] ボックスの下向き矢印をクリックし、デバイスの一覧から前にアタッチしたデバイスを選択します。
[検索] をクリックし、ローカル サブネットのデバイスの一覧からデバイスを選択します。
デバッグするコードの種類を [アタッチ先] ボックスに指定します。
[選択] をクリックし、次のいずれかを実行します。
[デバッグするコードの種類を自動的に判断する] をクリックします。
[次のコードの種類をデバッグする] をクリックし、一覧から 1 つ以上の型を選択します。
[選択可能なプロセス] の一覧から、アプリのプロセスを選択します。
[アタッチ] をクリックします。
Visual Studio によって、デバッガーがプロセスにアタッチされます。実行は、ブレークポイントに達するか、実行が手動で中断されるか、ハンドルされない例外が発生するか、アプリが終了するまで続行されます。