Visual Studio遠程調試


Visual Studio 支持從一台計算機到另一台計算機的遠程調試。 進行遠程調試時,主機可以是任何支持 Visual Studio 的平台。 遠程計算機可以是 32 位(Windows Vista、Windows 2000、Windows XP 或 Windows Server 2003)平台,也可以是 64 位(IA64、IA64 WOW 模式、x64 或 x64 WOW 模式)平台。

遠程調試組件

Native調試

文件

安裝位置

msvsmon.exe

遠程計算機上的任意位置。

32 位和 64 位調試應使用不同版本的 msvsmon。 請確保在遠程計算機上安裝了正確的版本。

dbghelp.dll

位於 msvsmon 所在的目錄中。

此可選文件用於保存應用程序的轉儲。 若未安裝此文件,調試器使用隨操作系統安裝的默認版本的 dbghelp.dll 保存轉儲。

msdbgui.dll

位於 msvsmon 所在的目錄中。

此可選文件包含用於遠程調試器的經本地化的字符串、對話框和幫助。 若此文件丟失,調試器將使用默認的英語資源。

托管調試

文件

安裝位置

msvsmon.exe

遠程計算機上的任意位置。

32 位和 64 位調試應使用不同版本的 msvsmon。 請確保在遠程計算機上安裝了適當的版本。

msvsmon.exe.config

位於 msvsmon 所在的目錄中。 若要加載正確的 .NET Framework 版本,該文件是必需的。

Symsrv.dll

位於 msvsmon 所在的目錄中。 如果在遠程調試中使用符號服務器,則該文件是必需的。

mcee.dll

位於 msvsmon 所在的目錄中。 若要調試使用 .NET Framework 的 C++ 代碼,該文件是必需的。

msvb7.dll 和 msvb7ui.dll

位於 msvsmon 所在的目錄中。 僅在 Visual B

特殊組件

文件

用途

AvVsPkDH.dll

用於在應用程序驗證工具下運行應用程序。 有關設置信息,請參見應用程序驗證工具文檔。

mpishim.exe

用於在群集上調試應用程序。

iisresolver.dll

用於調試禁用了 Windows 身份驗證的 Web 服務器。

遠程調試權限

下面的權限是遠程調試所必需的。

Native調試

  • 調試以您的帳戶和密碼運行的進程:不需要特殊的權限。
  • 調試以另一個帳戶名運行的進程:您的 Windows 登錄帳戶必須是遠程計算機上系統管理員組的成員。

托管調試

  • 調試以您的帳戶和密碼運行的進程:不需要特殊的權限。
  • 調試以另一個帳戶名運行的進程:您必須具有遠程計算機上的管理員特權。 例如,如果 ASP.NET 輔助進程 aspnet_wp.exe 作為 SYSTEM 或 ASPNET 運行,則您必須是運行該進程的計算機上的管理員。
  • 承載公共語言運行時的進程(如 SQL Server 2005)可能強制應用自定義調試特權。

設置遠程調試

若要啟用遠程調試,可以:

  • 在遠程計算機上安裝遠程調試組件,並在開始調試時啟動遠程調試監視器 (msvsmon.exe)。

    - 或 -

  • 從一個共享中遠程運行遠程調試監視器。

從一個文件共享中運行遠程調試監視器是啟用遠程調試的最容易的方法。在 64 位平台上安裝 Visual Studio 時,會將適用於所有三個體系結構的遠程調試監視器版本復制到以下文件夾:安裝路徑\Microsoft Visual Studio x.x\Common7\IDE\Remote Debugger。若要安裝其他遠程調試組件,請按照本文中的過程進行操作。

如果共享 Visual Studio 計算機中的遠程調試器目錄,則可以在遠程計算機中運行 msvsmon.exe。下列調試器方案要求您在遠程計算機中安裝遠程調試組件:

  • 單步執行從 WCF 客戶端調用的承載服務。

  • 自動調試 ASP.NET Web 應用程序。

兩種情況下,都可以進行手動附加,而無需在遠程計算機中安裝組件。除了從共享位置運行之外,還可以在遠程計算機中安裝必要的遠程調試組件。 此安裝提供對所有遠程調試功能的訪問。 在 x86 平台上運行遠程調試器安裝時,僅安裝 x86 遠程調試組件。 沒有用於安裝 64 位組件的選項。 如果在 64 位平台上運行遠程調試器安裝,則會同時安裝 x86 和 64 位組件。

安裝遠程調試組件

  1. 遠程調試器可在 Visual Studio 安裝包中找到。

  2. 在 Windows 資源管理器中,打開該包,然后找到 vs/Remote Debugger。

  3. 在 vs/Remote Debugger 文件夾中,根據您的平台啟動相應的遠程調試器安裝程序版本:rdbgsetup_x86、rdbgsetup_x64 或 rdbgsetup_ia64。

  4. 按照遠程調試器安裝程序向導中的說明完成安裝。

    如果您願意,可以通過手動復制文件來安裝遠程調試組件。 針對 32 位和 64 位平台,Visual Studio 包括不同版本的遠程調試監視器。 如果使用遠程調試器安裝程序,它會自動安裝正確版本的遠程調試監視器。 然而,如果手動復制文件,則您必須確保所復制的版本正確無誤。

  5. 安裝遠程調試組件以后,必須確保具有所需的權限以便對遠程計算機上的程序進行調試。

配置防火牆

必須配置 Windows 防火牆才能啟用遠程調試。 在首次啟動遠程調試時,Visual Studio 會在 Visual Studio 主機上進行必要的配置。 在遠程計算機中首次運行遠程調試監視器時,遠程調試監視器會在遠程計算機上配置 Windows 防火牆。

在 Windows XP 上,此配置是完全透明和自動的,但是在 Windows Vista 上,新的安全模型要求先授予權限,然后軟件才能配置防火牆。 此權限是通過“用戶帳戶控制”對話框授予的。

如果遠程調試監視器必須在遠程計算機上配置 Windows 防火牆,遠程計算機上則會顯示“用戶訪問控制”對話框。 如果遠程計算機不可見,您可能意識不到 UAC 對話框已顯示在遠程計算機的監視器上。 在這種情況下,您可能會誤認為遠程調試已停止響應。 實際上,遠程調試監視器只是在等待有人在遠程計算機上授予 UAC 權限。

必須手動配置 Windows 防火牆的情況是很少見的。

開始遠程調試

  1. 確保您在遠程計算機上具有必需的遠程調試權限。 有關更多信息,請參見遠程調試權限。

  2. 對於 SQL 以外的遠程調試,請確保您正在遠程計算機上運行遠程調試監視器。  進行 SQL 調試時,遠程調試監視器會在調試期間自動啟動。

  3. 在調試器主機上啟動 Visual Studio。

運行遠程調試監視器

遠程調試監視器 (msvsmon.exe) 是一個小型應用程序,Visual Studio 與之連接以進行遠程調試。 在遠程調試過程中,Visual Studio 在一台計算機(調試器主機)上運行,遠程調試監視器和正在調試的應用程序在遠程計算機上運行。在開始遠程調試前,必須設置遠程調試。 此外,還必須確保具有在遠程計算機上進行調試所需的權限。 完成這兩項操作后,即可運行遠程調試監視器,開始遠程調試。

首次運行遠程調試監視器時,必須在安裝遠程調試監視器的計算機上配置 Windows 防火牆。 此配置對於啟用遠程調試是必需的。 在 Windows Vista 上,必須在“用戶帳戶控制”對話框中授予此配置的權限,該對話框在要求配置時會出現。 如果已使用遠程調試器配置向導配置了 Windows 防火牆,則不需要此配置。

啟動遠程調試監視器

  1. 單擊“開始”,指向“所有程序”,指向“Visual Studio ”,然后單擊“Visual Studio 遠程調試器”。

    - 或 -

    在 Windows 命令提示符下,運行 msvsmon.exe。

    “遠程調試監視器”作為 Windows 應用程序運行。 用戶界面顯示“遠程調試監視器”正在運行,並使遠程調試易於設置。

  2. 現在,可以采用兩種模式中的一種來配置遠程調試的“遠程調試監視器”:

    • 若要在 Windows 身份驗證模式中設置遠程調試,

    • 若要在“無身份驗證模式”中設置遠程調試(僅限本機代碼)。 使用無身份驗證模式可以在慢速網絡上實現較快調試。 但是,這種方式不安全,只應在安全網絡中使用。

將遠程調試監視器配置為服務

  1. 單擊“開始”,選擇 Microsoft Visual Studio XX,然后單擊“Visual Studio XX 遠程調試器配置向導”。

  2. 按照向導中的步驟將遠程調試設置為服務。

遠程調試本地生成的項目

可能需要調試一個在本地生成的項目,然后在遠程計算機上運行可執行文件。 本主題闡釋如何更改本地項目設置以在遠程計算機上運行可執行文件。

Visual C++

此處顯示的過程假定您在計算機 local1 中生成了 MFC 項目 mymfc。 您需要在計算機 remote1 中運行應用程序 mymfc.exe,然后使用計算機 local1 中的 Visual Studio 調試器進行調試。

准備遠程計算機
  1. 在 remote1 上啟動 msvsmon。

  2. 將可執行文件 mymfc.exe 復制到遠程計算機上的某個位置。

    此示例將使用 c:\temp\mymfc.exe。

准備本地計算機
  1. 在“項目”菜單上選擇“屬性”。

  2. 在“mymfc 屬性頁”對話框中展開“配置屬性”節點,然后單擊“調試”。

  3. 將“要啟動的調試器”更改為“遠程 Windows 調試器”。

  4. 對於“遠程命令”設置,鍵入 c:\temp\mymfc.exe。

  5. 將“工作目錄”更改為您的項目所在的目錄。

  6. 對於“遠程服務器名稱”設置,鍵入 remote1。

  7. 將“連接”更改為“帶 Windows 身份驗證的遠程訪問”。

  8. 將“調試器類型”從“自動”更改成“僅限本機”,因為您知道正在調試本機代碼。

  9. 單擊“確定”。

  10. 將“符號路徑”設置為 local1 上調試符號所在的位置。

    本機遠程調試無法使用遠程計算機上的符號。 因此,必須提供一個本地位置。

  11. 在“調試”菜單中選擇“啟動”開始調試。

Visual C#

此處顯示的過程假定您的計算機 local1 上已生成 Windows 應用程序項目 mywin4m。 您需要在計算機 remote1 上運行應用程序 mywin4m.exe,並在計算機 local1 上使用 Visual Studio 調試器進行調試。

准備遠程計算機
  • 將可執行文件 mywin4m.exe 復制到遠程計算機上的某個位置,同時復制相關聯的 PDB 文件 (mywin4m.pdb) 以及運行該程序所需的 DLL 或其他文件。

    此示例將使用 c:\temp\mywin4m.exe。

准備本地計算機
  1. 在“文件”菜單上,指向“打開”,然后單擊“項目/解決方案”。

  2. 在“打開項目”對話框中,找到本地或遠程計算機上的 mywin4m.exe。

  3. 選擇 mywin4m.exe,然后單擊“確定”。

  4. 在“解決方案資源管理器”中右擊該項目,再單擊“屬性”。

  5. 在 mywin4m 屬性頁上,單擊“調試”。

  6. 在“工作目錄”文本框中,鍵入 c:\temp。

  7. 在“計算機名”文本框中,鍵入 remote1。

  8. (可選)在“調試器類型”下選擇“混合模式”,以顯式啟用托管代碼和非托管代碼的調試。

  9. 在遠程計算機上啟動遠程調試監視器,並將遠程調試模式設置為 Windows 身份驗證模式或無身份驗證模式。

  10. 在“調試”菜單中選擇“啟動”開始調試。

跨域遠程調試

遠程調試涉及 Visual Studio 調試器和遠程調試監視器 (msvsmon.exe) 之間的雙向通信。 為了使用遠程調試,運行 Visual Studio 以及運行 msvsmon.exe 的用戶身份非常重要。

若要連接到 msvsmon,您必須使用與 msvsmon 相同的用戶帳戶或管理員帳戶來運行 Visual Studio。 (也可以將 msvsmon 配置為接受來自其他用戶的連接。)

如果運行 msvsmon 的用戶可在 Visual Studio 計算機上通過身份驗證,則 Visual Studio 將接受來自 msvsmon 的連接。 (該用戶在 Visual Studio 計算機上必須有本地帳戶。)

在滿足這些限制后,遠程調試可應用於多種場合,包括:

  • 無雙向信任的兩個域。

  • 一個工作組中的兩台計算機。

  • 工作組中的一台計算機和域中的另一台計算機。

  • 以本地帳戶運行遠程調試監視器 (msvsmon) 或 Visual Studio。

因此,您在每台計算機上都必須有一個本地用戶帳戶,並且兩個帳戶必須有相同的用戶名和密碼。 如果想要使用不同的用戶帳戶運行 msvsmon 和 Visual Studio,您在每台計算機中必須有兩個用戶帳戶。

如果某個域帳戶與某個本地帳戶擁有相同的名稱和密碼,則可以使用該域帳戶運行 Visual Studio。 在每台計算機中,仍須有擁有相同用戶名和密碼的本地帳戶。

對於工作組中安裝了 Windows XP Professional 的計算機,本地安全設置可能會導致無法進行遠程調試。 為了能執行遠程調試,必須將策略設置為**“經典”**。 (此問題不適用於加入域的 Windows XP 計算機,也不適用於運行 Windows Server 2003 或較新版本的 Windows Server、Windows Vista 或 Windows 7 的計算機。)

更改安全策略以允許在域之間進行遠程調試

  1. 在本地計算機上,從“開始”菜單中選擇“控制面板”。

  2. 在“控制面板”中雙擊**“管理工具”。

  3. 在“管理工具”窗口中雙擊“本地安全策略”。

  4. 在“安全設置”下打開“本地策略”文件夾。

  5. 在“本地策略”文件夾中選擇“安全選項”。

  6. 在“策略”列中,找到“網絡訪問: 本地帳戶的共享和安全模式”並雙擊它。

  7. 在“網絡訪問: 本地帳戶的共享和安全模式”對話框中,將設置從“僅來賓 - 本地用戶以來賓身份驗證”更改為“經典 - 本地用戶以自己的身份驗證”並單擊“確定”。

  8. 關閉該窗口並重新啟動計算機。

  9. 在遠程計算機上重復步驟 1 到 8。

    現在就可以在兩台計算機上使用相同的用戶名進行遠程調試了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM