首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

VC++ 遠程除錯完整設定指南:Visual Studio .NET 2003 TCP/IP 遠程調試實戰

     編輯:VC 教學

架構總覽

角色IP關鍵軟體
除錯主機192.168.0.182Visual Studio .NET 2003
目標主機192.168.0.161Remote Debugging Monitor (msvcmon.exe)

步驟 1:目標主機授權遠端桌面 (方便操作)

  • 系統屬性 → 遠端 → 允許遠端連線
  • 將除錯主機使用者加入「遠端桌面使用者」群組

步驟 2:共享除錯主機 VS 遠程調試元件目錄

路徑:C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Packages\Debugger

  • 右鍵共享 → 共用名稱 Debugger,權限:Everyone 讀取

步驟 3:目標主機複製遠程調試監視器

  • 從除錯主機共享資料夾複製整個 Debugger 目錄到本地,如 D:\Debugger
  • 確認 msvcmon.exe 存在於 D:\Debugger

步驟 4:共享待除錯程式目錄

  • 除錯主機共享專案輸出目錄,如 D:\Projects\MyApp\Bin\Debug,共用名 MyAppBin
  • 目標主機對應網路磁碟機:net use Z: \\192.168.0.182\MyAppBin (或 GUI 對應)

步驟 5:目標主機啟動遠程調試監視器

D:\Debugger\msvcmon.exe -tcpip -anyuser
  • -tcpip:使用 TCP/IP 傳輸
  • -anyuser:允許任何使用者連線 (開發環境用,生產需限制)
  • 啟動後視窗顯示:Msvcmon started a new server named '192.168.0.161:4015'. Waiting for connections...

步驟 6:除錯主機 VS 專案設定

  1. 開啟方案 → 專案右鍵 Properties (屬性)
  2. Configuration Properties → Debugging
  3. Debugger Type: Remote via TCP/IP (Native only)
  4. Remote Machine: 192.168.0.161 (或主機名)
  5. Remote Command: Z:\MyApp.exe (目標主機網路磁碟機路徑)
  6. Remote Working Directory: Z:\
  7. Deploy Directory: (可留空)
  8. Additional Files: (需部署的 DLL/資源檔,用分號分隔)

步驟 7:啟動遠程除錯

  • VS 工具列 → Debug → Start (F5)
  • VS 會複製檔案到部署目錄、在目標主機啟動程式、附加除錯器
  • 斷點、變數監看、呼叫堆疊、記憶體視窗全部可用

常見問題排查

現象原因與解決
連線失敗 / 找不到 msvcmon防火牆阻擋 TCP 4015/4016;目標主機未啟動 msvcmon;IP 錯誤
「Unable to start program」Remote Command 路徑在目標主機不存在;網路磁碟機未對應;權限不足
符號未載入 / 斷點空心專案需產生 PDB;部署目錄需包含 PDB 檔;Tools→Options→Debugging→Symbols 加入 PDB 路徑
Managed 代碼無法除錯VS2003 Remote Debugging 僅支援 Native (C++);Managed 需 VS2005+
目標主機無 Visual Studio 仍可除錯?是,只需 msvcmon.exe + PDB + 程式二進位檔

進階:命令列參數傳遞

專案屬性 → Debugging → Command Arguments:arg1 arg2 "/path with space"

進階:Just-In-Time 遠程除錯

  • 目標主機註冊 JIT:msvcmon.exe -reg
  • 程式崩潰時自動彈出「選擇除錯器」,可選擇遠程 VS 實例

VS 版本對照

掌握 msvcmon.exe -tcpip -anyuser + VS 專案 Remote Debugging 設定,即可輕鬆跨網路除錯嵌入式設備、伺服器、無顯示器主機等目標環境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
VS 版本遠程監視器支援架構
VS .NET 2003msvcmon.exex86 Native
VS 2005/2008msvsmon.exex86, x64, IA64, Managed
VS 2010+msvsmon.exex86, x64, ARM, Managed, Azure