使用場景
假如你要開發的程序需要運行在獨特的硬件上,比如:服務器,然而這個"獨特的硬件"卻不能給你裝VS,這時候遠程調試就登場了.
測試工具/環境一覽
Key | Value |
---|---|
VS版本 | VS2017 |
被調試程序net框架版本 | 4.0 |
目標設備系統 | Win7 32位 |
目標設備IP | 168.5.16.42 |
我自己的ip | 192.168.11.106 |
如果遠程機器沒密碼,需要配置這個
測試代碼
static void Main(string[] args)
{
Console.WriteLine("等待調試器...");
//這個屬性用來檢測本程序是否被調試器附加,開頭這一段一直循環,等待調試器附加上來再繼續執行代碼
while (!System.Diagnostics.Debugger.IsAttached)
{
System.Threading.Thread.Sleep(100);
}
Console.WriteLine("調試器連接成功!");
var a = 123;
var b = 222;
var c = a + b;
Console.WriteLine(c);
}
根據以上代碼編譯出程序
發送相關文件到目標設備
VS安裝目錄下有個遠程調試文件夾,里面有多個版本,根據情況,選擇一個,我這里選x86的...
然后是你要調試的程序文件,傳輸過去.
在目標設備,運行遠程調試器
notice1:目標機器,是指被調試的機器,不是我們自己運行VS的機器
notice2:可能需要裝net4.5與vc的一些運行庫,如果運行不起來,嘗試把net框架與vc運行庫各個版本都裝上試試.
在目標機器運行要調試的程序
在本機VS菜單打開附加調試的界面
1:首先輸入遠程ip和端口
2:輸入要調試的程序名稱
3:如果找不到,可以勾選左下角
4:選擇程序,附加
如果對方面設備有密碼,期間可能會讓輸入密碼.如果沒有密碼,但是不管怎么試都失敗,請參考上面配置安全選項.
斷點成功
還可以看到變量內容:
其它細節
附加調試也能附加到本機進程
選擇目標計算機的時候,默認本機計算機名稱,不用改.
調試本機進程不用運行遠程調試器.
可以讓VS直接生成程序到遠程設備
首先共享遠程調試目錄,給everyone讀寫權限:
在本機嘗試打開
復制這個路徑
粘貼到項目屬性的這個地方
編譯輸出
成功!
調試也支持直接遠程啟動
不建議這么干,程序在使用AppDomain.CurrentDomain.BaseDirectory等方式獲取啟動路徑的時候得到的會是遠程路徑: