方法 : 高パフォーマンス クラスター上でデバッグする
高パフォーマンス クラスター上でのマルチプロセス プログラムのデバッグは、リモート マシン上での通常のプログラムのデバッグと似ています。ただし、追加の考慮事項がいくつかあります。リモート クラスターのデバッグのセットアップ要件については、「方法 : リモート クラスター アプリケーションをデバッグする」を参照してください。一般的なリモート セットアップ要件については、「リモート デバッグのセットアップ」を参照してください。
高パフォーマンス クラスター上でデバッグするときは、リモート デバッグに使用できる Visual Studio のデバッグ ウィンドウとデバッグ手法をすべて使用できます。ただし、リモートでデバッグするため、外部のコンソール ウィンドウは使用できません。
[スレッド] ウィンドウと [プロセス] ウィンドウは、並列アプリケーションをデバッグする際に特に役立ちます。これらのウィンドウの使い方に関するヒントについては、「方法 : [プロセス] ウィンドウを使用する」および「方法 : [スレッド] ウィンドウを使用する」を参照してください。
以下の手順では、高パフォーマンス クラスター上でのデバッグに特に役立つ手法を示します。
並列アプリケーションをデバッグするときは、特定のスレッド、プロセス、またはコンピューターにブレークポイントを設定することが必要になる場合があります。これを行うには、通常のブレークポイントを作成してから、ブレークポイント フィルターを追加します。
[ブレークポイントのフィルター] ダイアログ ボックスを開くには
ソース ウィンドウ、[逆アセンブル] ウィンドウ、[呼び出し履歴] ウィンドウ、または [ブレークポイント] ウィンドウでブレークポイント グリフを右クリックします。
ショートカット メニューの [フィルター] をクリックします。このオプションは、最上位レベルまたは [ブレークポイント] のサブメニューとして表示されます。
特定のコンピューターにブレークポイントを設定するには
[プロセス] ウィンドウでコンピューター名を確認します。
ブレークポイントを選択し、前記の手順に従って [ブレークポイントのフィルター] ダイアログ ボックスを開きます。
[ブレークポイントのフィルター] ダイアログ ボックスに次の文字列を入力します。
MachineName =yourmachinename
より複雑なフィルターを作成する場合は、AND 演算子 (&)、OR 演算子 (||)、NOT 演算子 (!)、およびかっこを使って句を結合できます。
[OK] をクリックします。
特定のプロセスにブレークポイントを設定するには
[プロセス] ウィンドウで、プロセス名またはプロセス ID 番号を取得します。
ブレークポイントを選択し、最初の手順に従って [ブレークポイントのフィルター] ダイアログ ボックスを開きます。
[ブレークポイントのフィルター] ダイアログ ボックスに次の文字列を入力します。
ProcessName = theprocessname
または
ProcessID =theprocessIDnumber
より複雑なフィルターを作成する場合は、AND 演算子 (&)、OR 演算子 (||)、NOT 演算子 (!)、およびかっこを使って句を結合できます。
[OK] をクリックします。
特定のスレッドにブレークポイントを設定するには
[スレッド] ウィンドウで、スレッド名またはスレッド ID 番号を取得します。
ブレークポイントを選択し、最初の手順に従って [ブレークポイントのフィルター] ダイアログ ボックスを開きます。
[ブレークポイントのフィルター] ダイアログ ボックスに次の文字列を入力します。
ThreadName =thethreadname
または
ThreadID =thethreadIDnumber
より複雑なフィルターを作成する場合は、AND 演算子 (&)、OR 演算子 (||)、NOT 演算子 (!)、およびかっこを使って句を結合できます。
[OK] をクリックします。
使用例
次の例は、marvin というコンピューターと fourier1 というスレッドを対象とするブレークポイントのフィルターを作成する方法を示しています。
(MachineName = marvin) & (ThreadName = fourier1)