方法 : 実行中のプロセスにアタッチする
このトピックの内容は、次の製品に該当します。
エディション |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro、Premium、Ultimate |
Visual Studio デバッガーは、実行中のすべてのプロセスにアタッチできます。
実行中のプロセスにアタッチするには
[デバッグ] メニューの [プロセスにアタッチ] をクリックします 開いているプロジェクトがない場合は、[ツール] メニューの [プロセスにアタッチ] をクリックします。
[プロセスにアタッチ] ダイアログ ボックスの [選択可能なプロセス] ボックスの一覧で、アタッチするプログラムを探します。
デバッグするプログラムが別のコンピューターで実行中の場合は、最初にリモート コンピューターを選択する必要があります。 詳細については、「方法: リモート コンピューターを選択する」を参照してください。
プロセスが別のユーザー アカウントで実行されている場合は、[すべてのユーザーからのプロセスを表示する] チェック ボックスをオンにします。
リモート デスクトップ接続経由で接続している場合は、[すべてのセッションのプロセスを表示する] チェック ボックスをオンにします。
[アタッチ先] ボックスに、デバッグするコードの種類が表示されていることを確認します。 既定の [自動] 設定では、デバッグするコードの種類が自動的に判断されます。 自動による設定が適切でなかった場合は
[選択] をクリックします。
[コードの種類の選択] ダイアログ ボックスで、[次のコードの種類をデバッグする] をクリックし、デバッグする種類を選択します。
[OK] をクリックします。
[アタッチ] をクリックします。
[プロセス] ダイアログ ボックスを開くと、[選択可能なプロセス] ボックスが自動的に表示されます。 このダイアログ ボックスが開いている間に、プロセスをバックグラウンドで開始および停止できます。 このため、内容が常に最新であるとは限りません。 [更新] をクリックすると、いつでも一覧の内容を更新して、現在のプロセス一覧を確認できます。
デバッグ中には複数のプログラムにアタッチできますが、デバッガーでアクティブになっているプログラムは常に 1 つだけです。 アクティブなプログラムは、[デバッグの場所] ツール バーまたは [プロセス] ウィンドウで設定できます。 詳細については、「方法 : 現在のプロセスを設定する」を参照してください。
[デバッグ] メニューのすべての実行コマンドは、アクティブ プログラムに影響します。 デバッグ対象のプログラムは、[プロセス] ダイアログ ボックスで中断できます。[デバッグ] メニューでは、アタッチされているすべてのプログラムを中断できます。 詳細については、「方法 : 実行を中断する」を参照してください。
注意
Visual C++ で記述されたマネージ コードにデバッガーをアタッチするには、コードが DebuggableAttribute を生成する必要があります。 /ASSEMBLYDEBUG リンカー オプションを使ってリンクすると、これを自動的にコードに追加できます。
信頼関係のないユーザー アカウントによって所有されているプロセスにアタッチしようとすると、セキュリティ警告の確認ダイアログ ボックスが表示されます。 詳細については、「Security Warning: Attaching to a process owned by an untrusted user can be dangerous. If the following information looks suspicious or you are unsure, do not attach to this process」を参照してください。
リモート デスクトップ (ターミナル サービス) セッションでのデバッグ時には、[選択可能なプロセス] ボックスに、使用可能なプロセスのすべてが表示されない場合があります。 Windows Server 2003 以降のバージョンでは、Visual Studio を制限付きユーザーとして実行している場合、[選択可能なプロセス] ボックスの一覧には、セッション 0 で実行しているプロセスは表示されません。セッション 0 は、サービスおよび w3wp.exe を含むその他のサーバー プロセス用に使用されます。 この問題を解決するには、管理者アカウントで Visual Studio を実行するか、ターミナル サービス セッションからではなくサーバー コンソールから Visual Studio を実行します。 どちらの方法も実行できない場合、3 つ目の方法として、Windows コマンド ラインから vsjitdebugger.exe -p ProcessId を実行することによって、プロセスにアタッチできます。 プロセス ID は tlist.exe を使用して確認できます。 tlist.exe を入手するには、https://go.microsoft.com/fwlink/?LinkId=168279 で Windows 対応のデバッグ ツールをダウンロードし、インストールします。