HOW TO:偵錯遠端叢集應用程式
更新:2007 年 11 月
這個主題適用於:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express 版 |
||||
Standard 版 |
||||
Pro/Team 版 |
表格圖例:
套用 |
|
不套用 |
|
預設隱藏的命令。 |
Visual Studio 現已支援 MPI 叢集偵錯。這個功能可讓您對平行程式進行偵錯,所謂的平行程式就是透過 Message Passing Interface (MPI) 溝通的電腦叢集上所執行的程式。
MPI 偵錯必備條件
叢集中的每一台電腦上都必須安裝和設定 MPIMPI 隨附於 Windows Server 2003 Compute Cluster Edition 中。您也可在其中取得其他 MPI 的實作。
MPIShim.exe 必須安裝在叢集中的每一台電腦上。MPIShim 會隨附在 Visual Studio 2005,並且與遠端偵錯元件一起安裝以啟用平行偵錯。MPIShim 能夠安裝在任何目錄中,但必須位於叢集中每一台電腦上的相同目錄中。其中一種可能的路徑為:
c:\windows\system32\mpishim
此外,也可以安裝在偵錯目標的本機目錄中。
遠端偵錯監視 (Remote Debugging Monitor,msvsmon) 必須安裝在叢集中的每一台電腦上。請參閱 HOW TO:執行遠端偵錯監視.
Visual Studio 主機 (用以進行偵錯的機器) 必須使用具有適當特殊權限的帳戶進行設定,以偵錯叢集電腦 (請參閱遠端偵錯權限)。
若要準備 MPI 偵錯的 Visual Studio 專案
請在 Visual Studio 中開啟包含平行應用程式的方案。
在 [方案總管] 中以滑鼠右鍵按一下專案,然後從快速鍵功能表選擇 [屬性]。
在 [Project屬性] 對話方塊中,選取 [偵錯]。
在 [要啟動的偵錯工具 清單方塊中,選擇 [MPI 叢集偵錯]。
在 [MPIRun 命令] 方塊中,輸入叢集電腦上的 MPIRun 或 MPIExec 位置 (用以啟動 MPI 應用程式)。例如:
c:\windows\system32\mpiexec.exe
在 [MPIRun 引數] 方塊中,輸入您要傳遞至 MPIRun 或 MPIExec 的任何引數。例如:
-np 2
在 [MPIRun 工作目錄] 方塊中,輸入 MPIRun 或 MPIExec 的工作目錄。例如:
c:\temp
在 [應用程式命令] 方塊中,輸入 MPI 將在每一個叢集電腦執行上執行的應用程式路徑 (也就是您已在 Visual Studio 中開啟其專案的應用程式)。這個路徑可以是叢集中每一台電腦上的共用路徑或本機路徑。如果是本機路徑,每一台電腦上都必須是相同的本機路徑。例如:
$(TargetPath)
在 [應用程式引數] 方塊中,輸入您要傳遞至應用程式的任何引數。
在 [MPIShim 位置] 方塊中,輸入 MPIShim.exe 的路徑。例如:
c:\windows\system32\mpishim
您也可以將 [偵錯工具類型] 清單方塊設定為 [自動] (預設值),偵錯工具將為您正在執行的程式碼選擇正確的偵錯工具類型。或者,您也可以為應用程式選擇正確的類型 ([機器碼]、[Managed 程式碼] 或 [混合程式碼])。
關閉 [Project屬性] 對話方塊。
從 [工具] 功能表中選擇 [選項]。
在 [選項] 對話方塊中選擇 [一般] 分類,然後選擇 [偵錯] 節點。
找出 [某個處理序中斷時,中斷其他所有的處理序] 核取方塊。依照想要在偵錯期間進行的行為,選取或清除該核取方塊 (因為這是 [工具] 選項,所以這個設定仍會對所有專案生效,直至您變更為止)。如需詳細資訊,請參閱 HOW TO:中斷執行。
按一下 [確定] 關閉 [選項] 對話方塊。
若要偵錯平行應用程式
在 [偵錯] 功能表上按一下 [開始] 以開始偵錯。
如果您已正確設定專案,應用程式會開始在叢集中的所有電腦上執行。
如果您已在程式碼中設定中斷點,執行會在第一個中斷點處中斷。
請在 [偵錯] 功能表中按一下 [視窗],然後按一下 [處理序]。
[處理序] 視窗。您可以使用這個視窗設定現用的處理序。若是只要逐步執行單一現用的處理序,請使用本視窗上方的逐步執行按鈕。
偵錯平行應用程式時,可以使用資料提示方塊取得變數值。您在資料提示方塊中看見的變數值,會以 [處理序] 視窗中目前設定之現用的處理序為依據。