方法 : アタッチ エラーに対処する
更新 : 2007 年 11 月
このトピックの内容は、次の製品に該当します。
エディション |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Standard |
||||
Pro/Team |
表の凡例 :
対象 |
|
該当なし |
|
既定で非表示のコマンド |
実行中のプロセスに Visual Studio デバッガがアタッチすると、このプロセスは、1 種類以上のコードを含むことができます。デバッガがアタッチできるコードの種類は、ネイティブ、マネージ、T-SQL、スクリプトの 4 種類です。これらの種類は、[プロセスにアタッチ] ダイアログ ボックスに表示され、選択できます。
メモ : |
---|
C++ で記述されたマネージ コードにデバッガをアタッチするには、コードが DebuggableAttribute を生成する必要があります。/ASSEMBLYDEBUG リンカ オプションを使ってリンクすると、これを自動的にコードに追加できます。 |
デバッガは、ある種類のコードに正常にアタッチできても、別の種類にはアタッチできないことがあります。この問題は、リモート コンピュータで動作しているプロセスにアタッチしようとする場合に発生することがあります。リモート コンピュータには、一部の種類のコードにしか対応しないリモート デバッグ コンポーネントがインストールされている場合があるためです。また、ダイレクト データベース デバッグのために複数のプロセスにアタッチしようとした場合にも発生することがあります。SQL デバッグ機能は、単一プロセスへのアタッチのみをサポートします。
デバッガが一部の種類のコードにしかアタッチできない場合は、次のようなメッセージが表示されます。
The requested attach was not completed successfully.
Program types successfully attached are:
Common Language Runtime
Native (Win32)
Microsoft T_SQL
Program types that failed to attach are:
Script
デバッガが少なくとも 1 種類のコードに正常にアタッチできる場合は、プロセスのデバッグを開始できます。正常にアタッチされたコードの種類のみをデバッグできます。上記のメッセージの例は、種類がスクリプトのコードにアタッチできなかったことを示しています。この場合、プロセス内でスクリプト コードをデバッグできません。プロセス内のスクリプト コードはそのまま実行されますが、スクリプトでのブレークポイントの設定、データの表示、またはその他のデバッグ操作は実行できません。
デバッガがコードの種類へのアタッチに失敗した理由についてより詳しい情報が必要な場合は、該当するコードの種類のみに再アタッチを試行できます。
ある種類のコードへのアタッチに失敗した理由を確認するには
プロセスからデタッチします。[デバッグ] メニューの [すべてデタッチ] をクリックしてください。
プログラムの種類を 1 つだけ選択して、プロセスに再度アタッチします。
[プロセスにアタッチ] ダイアログ ボックスの [選択可能なプロセス] ボックスの一覧で、プロセスを選択します。
[選択] をクリックします。
[コードの種類の選択] ダイアログ ボックスの [次のコードの種類をデバッグする] をクリックし、アタッチに失敗したコードの種類を選択します。他のコードをすべてオフにします。
[OK] をクリックします。[コードの種類の選択] ダイアログ ボックスが閉じます。
[プロセスにアタッチ] ダイアログ ボックスで、[アタッチ] をクリックします。
このとき、アタッチは完全に失敗し、詳細なエラー メッセージが表示されます。