一、背景 在公司軟體的實際開發中,當一個版本的客戶端安裝包本地調試、測試驗證都沒問題後外發,到用戶實際機器上出問題了,怎麼辦? 很多人說,讓客戶給出復現步驟,我來試試!但是按照步驟操作之後還是沒效果。這時你又想到了是不是環境的差異,但是又說不上來是哪裡出問題。提供兩個辦法:1.寫日誌,編一個相近版本 ...
一、背景
在公司軟體的實際開發中,當一個版本的客戶端安裝包本地調試、測試驗證都沒問題後外發,到用戶實際機器上出問題了,怎麼辦?
很多人說,讓客戶給出復現步驟,我來試試!但是按照步驟操作之後還是沒效果。這時你又想到了是不是環境的差異,但是又說不上來是哪裡出問題。提供兩個辦法:1.寫日誌,編一個相近版本的dll給用戶替換之後看日誌(但是公司不讓提供dll給用戶)--這時在公司大群喊一聲,看是否能找到公司內部人員復現;如果幸運找到了,就將dll給同事,通過寫的日誌排查;2.今天重點講的是第二種方法,如果使用Visual Studio遠程調試;
二、使用Visual Studio遠程調試
遠程調試工具(x86版本)-[remote Debugger](鏈接:https://pan.baidu.com/s/1hFYCrjULKcSkQx4tkPEY7w
提取碼:6vcn)
在用戶電腦雙擊運行這個工具:
通過ipconfig查看用戶ip地址(跟用戶得在同一個網路)
記錄下用戶的ipv4地址
然後打開VS的附加遠程調試
在客戶端電腦通過remote debugger設置無需身份驗證(不要選擇連接目標的下拉框,直接輸入ip地址即可)
選擇對應的進程附加(記得在用戶那裡啟動相應的軟體)
在這裡選擇用戶已有的進程進行附加
然後打開符號載入工具(可以自動載入符號的,每個公司應該都有)
選擇對應的dll文件進行載入
然後就是跟本地一樣的斷點調試了(本地的代碼版本儘量跟安裝包的保持一致)
註意事項:
一定要選擇對應的進程,不然就算載入了對應的插件也找不到(有時候主進程還沒起來,切得等你想要的進程起來後再選擇對應的進程進行插件的搜索)