其實很多時候,遠程調試的話,我還是更喜歡用WinDBG的,
首先,可以練習WinDBG的使用手段,
其次,可以增加WinDBG的熟練度,
最重要的,WinDBG在內核調試部分很常用,我也很喜歡它,所以我也經常用,
但是用多了會發現有個問題,就是,WinDBG建立普通的調試環境太慢了,
(不考慮dbgsrv和.server,因為在現有環境下,可以有更好的方法,這兩種純粹屬於陌生環境下的無奈),
所以,想辦法解決問題。
其實VS自帶就有遠程調試相關的功能,
而且設置步驟非常簡單,
1:確認自己的開發機上,完整地安裝了VS。(這是廢話,VS不完整,怎么開發。)
2:使用Everything搜索一個叫做“msvsmon”的名字,這時會搜索出很多
3:如果安裝了不同版本的IDE,會搜索出很多不同版本的msvsmon,尋找一個自己要使用的對應版本的msvsmon,我需要的就是VS12.0版本的,
找到目錄,把目錄里面兩個文件夾都拷到目標機器中。
4:對應自己要調的程序位數以及目標操作系統位數,打開指定目錄下的 msvsmon.exe
5:其實,什么都不用設置,這時服務端就可以用了。
6:VS的設置。
紅色方框內部,選擇遠程調試,
遠程命令寫要調試的程序路徑及名字,
遠程命令參數就是命令行參數,
工作目錄可以填寫一個遠程目錄,
遠程服務器名稱,直接填寫遠程電腦的IP就好,
然后是比較重要的連接,這里使用默認的“帶Windows身份驗證的遠程訪問”就好,因為服務器端那邊我們沒有設置,服務器端也是默認的,而默認的也是這個選項。
其他部分可以不用修改。
7:大功告成。
可以F5了。
這里需要注意幾點:
1:目標機器一定要有自己機器的軟件環境,比如亂七八糟的RTL庫,沒有的話,可以現裝。
2:一般來說只要是符號正確,基本上都沒有問題,如果符號不匹配,看看是不是編譯問題。
3:如果連不上,先看自己是不是IP寫錯了,因為服務端運行的時候,如果判斷防火牆存在,那么它會請求添加防火牆,一般來說,防火牆出問題的可能性比較小,大多都是IP寫錯了。