ps:本人按照下面的方式設置成功,個人感覺寫的也比較清楚
來源:http://www.cnblogs.com/OpenCoder/archive/2010/02/17/1668983.html
vs支持遠程調試但是對於通過 匿名調試的方式實際上是無法設置斷點的,因為符號沒有加載!要想調試,必須采用windows身份驗證! 也就是和遠程主機設置一樣的用戶名和密碼.
VS是支持遠程調試的,這樣在自己公司就可以遠程調試在客戶機上的程序了
VS的遠程調試分為兩種:
直接遠程調試:這種調試方法必須在有VS項目文件下才可以使用(因為被調試機的地址要在項目文件中設置),具體內容請見:http://www.cnblogs.com/tengs2000/articles/1070760.html 里的方法一
附加進程調試:具體內容請見:http://www.cnblogs.com/tengs2000/articles/1070760.html 里的方法二
這里我只說幾個要值得注意的地方
1、附加進程調試又分為兩種:(1)Window身份驗證遠程調試 (2)匿名遠程調試
-
Windows身份遠程調試在調試主機上VS里的附加進程要用默認模式,這里請注意不要被遠程模式的字面意思欺騙了,"遠程(無身份驗證時僅限本機)"這個模式實際上指的是匿名遠程調試需要輸入被調試的主機名和端口號
-
Windows身份驗證遠程調試必須要在調試機和被調試機上使用相同用戶名和密碼的Windows賬戶,這樣做是為了驗證調試機的身份。
-
將遠程調試作為被調試機的服務可以免除"Windows身份驗證遠程調試必須要在調試機和被調試機上使用相同用戶名和密碼的Windows賬戶"這個限制,因為在設置windows服務的時候會要求輸入允許進行調試的機器的登錄名和密碼,只要調試者在他的系統上使用該用戶名和密碼就可以使用遠程調試。
-
直接遠程調試只支持Visual Studio 遠程調試器上的windows身份驗證調試模式,不支持將遠程調試作為被調試機的服務和匿名遠程調試
-
使用匿名遠程調試有個問題,附加進程上的被調試機進程沒有用戶名,導致VS上設置的斷點全不起作用,感覺匿名遠程調試如同虛設.....至今沒有找到解決辦法........
-
使用匿名遠程調試的時候如果在msvsmon上沒有選擇"允許任何用戶進行調試"復選框,那么仍然有:"調試機和被調試機上使用相同用戶名和密碼的Windows賬戶"這個限制,但是就算是在匿名遠程調試下使用相同的用戶名和密碼你還是會發現附加進程里出現的被調試機進程還是沒有用戶名,這仍然說明設置斷點不起作用
2、設置
前提條件:
調試機和被調試機都在一個局域網內,且必須在一個網段
調試機和被調試機必須登錄相同的用戶,用戶名必須一直
關閉防火牆或打開相應的端口,一般是4015
調試機和被調試機的本地安全策略中的網絡訪問必須改為"經典,本地用戶以自己的身份驗證",路徑為控制面板->用戶管理->本地安全設置->本地策略->安全選項->網絡訪問
調試方法:
至此有2種調試方法:一種是匿名調試,無需驗證,一種是Window身份驗證調試:
匿名調試:
1.被調試機的msvsmon下選擇工具->選項,點擊無身份驗證模式(只限本機)
2.之后可以看到主機名和IP,一般是hostname:4015的形式
3.調試機打開VS,選擇附加到進程
4.傳輸選擇遠程(無身份驗證時僅限本機)
5.限定符選擇hostname:4015,之后刷新就可以看到進程列表了
Window身份驗證調試:這種方法需要調試機和被調試機的用戶名和密碼完全一致
1.被調試機的msvsmon下選擇工具->選項,點擊windows身份驗證
2.調試機打開VS,選擇附加到進程
3.傳輸選擇默認
4.限定符選擇,之后刷新就可以看到進程列表了
