次の方法で共有


方法 : アタッチ エラーに対処する

このトピックの内容は、次の製品に該当します。

エディション

Visual Basic

C#

F#

C++

Web Developer

Express

トピック該当なし トピック該当なし トピック該当なし トピック該当なし トピック該当なし

Pro、Premium、Ultimate

トピック該当 トピック該当 トピック該当

トピック該当

トピック該当

実行中のプロセスに Visual Studio デバッガーがアタッチすると、このプロセスは、1 種類以上のコードを含むことができます。 デバッガーがアタッチできるコードの種類は、ネイティブ、マネージ、T-SQL、スクリプトの 4 種類です。 これらの種類は、[プロセスにアタッチ] ダイアログ ボックスに表示され、選択できます。

注意

C++ で記述されたマネージ コードにデバッガーをアタッチするには、コードが DebuggableAttribute を生成する必要があります。 /ASSEMBLYDEBUG リンカー オプションを使ってリンクすると、これを自動的にコードに追加できます。

デバッガーは、ある種類のコードに正常にアタッチできても、別の種類にはアタッチできないことがあります。 この問題は、リモート コンピューターで動作しているプロセスにアタッチしようとする場合に発生することがあります。 リモート コンピューターには、一部の種類のコードにしか対応しないリモート デバッグ コンポーネントがインストールされている場合があるためです。 また、ダイレクト データベース デバッグのために複数のプロセスにアタッチしようとした場合にも発生することがあります。 SQL デバッグ機能は、単一プロセスへのアタッチのみをサポートします。

デバッガーが一部の種類のコードにしかアタッチできない場合は、アタッチできなかった種類を識別するメッセージが表示されます。

デバッガーが少なくとも 1 種類のコードに正常にアタッチできる場合は、プロセスのデバッグを開始できます。 正常にアタッチされたコードの種類のみをデバッグできます。 上記のメッセージの例は、種類がスクリプトのコードにアタッチできなかったことを示しています。 この場合、プロセス内でスクリプト コードをデバッグできません。 プロセス内のスクリプト コードはそのまま実行されますが、スクリプトでのブレークポイントの設定、データの表示、またはその他のデバッグ操作は実行できません。

デバッガーがコードの種類へのアタッチに失敗した理由についてより詳しい情報が必要な場合は、該当するコードの種類のみに再アタッチを試行できます。

ある種類のコードへのアタッチに失敗した理由を確認するには

  1. プロセスからデタッチします。 [デバッグ] メニューの [すべてデタッチ] をクリックしてください。

  2. プログラムの種類を 1 つだけ選択して、プロセスに再度アタッチします。

    1. [プロセスにアタッチ] ダイアログ ボックスの [選択可能なプロセス] ボックスの一覧で、プロセスを選択します。

    2. [選択] をクリックします。

    3. [コードの種類の選択] ダイアログ ボックスの [次のコードの種類をデバッグする] をクリックし、アタッチに失敗したコードの種類を選択します。 他のコードをすべてオフにします。

    4. [OK] をクリックします。 [コードの種類の選択] ダイアログ ボックスが閉じます。

    5. [プロセスにアタッチ] ダイアログ ボックスで、[アタッチ] をクリックします。

    このとき、アタッチは完全に失敗し、詳細なエラー メッセージが表示されます。

参照

その他の技術情報

実行中のプロセスへのアタッチ