今天在使用者的一台機器上遇到了很奇怪的問題。一個按鈕點選時機率性的第一次點選無回報。
因為是機率性的,機率又很低,而當初在設計Log時又設計的是必須重新開機軟體才會生效log開關;
是以這裡使用當時release編譯出的産物+調試産物配合遠端調試來跟蹤問題。
需要用到的東西:
一、被調試的機器安裝Remote Debugger
在VS安裝的電腦裡進入以下目錄,如果是2017的VS找對應的2017檔案夾。我的是Enterprise版本,找對應的檔案夾就行。比如preview版本的就找preview等等。32位的程式就拷貝X86的目錄到對應的軟體機器上,64位的就拷貝x64用于調試。
目錄如下:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Remote Debugger
在需要被調試的機器上啟動目錄下的msvsmon.exe 程式。我保持了預設、點選配置遠端調試。并在彈出的UAC中選擇是。

右下角圖示通知欄就會有一個下圖的圖示,如果沒有,在收起來的圖示欄裡找一下。這個就是調試工具,用于安裝在被調試的機器上。
輕按兩下打開調試器。選擇工具=》選項=》我關閉了身份驗證,選擇無身份驗證,設定最長時間為999999。當然您也可以設定windows 身份驗證,但是我調試時間比較短,而且隻是調試的時候打開這個軟體,是以我設定了無身份驗證,點選确定。
我是在同一個區域網路之内的,如果不是同一個區域網路,看是否有外網獨立IP。或者使用花生殼之類的轉發,也可以。
二、在VS中打開對應的代碼并附加遠端調試的程序。
在對應的代碼工程中,點選菜單欄中的調試=》附加到程序=》連接配接目标=》查找=》找到下面的1個連接配接=》點選選擇
如果清單中沒有,請檢查是否在一個網絡之内。或者是否能通路到這個機器。在cmd下用ping的方式驗證一下,是否可以連通IP位址。
如果選擇成功之後,程序清單就會重新整理,然後選擇你需要調試的程序,點選附加,如果沒有你要的程序,請在需要被調試的機器上确認是否程序存在,然後再調試的機器上點選重新整理。找到需要調試的程序,點選附加。就可以了。
三、在VS中使用子產品加載添加斷點
PS:VS沒有運作DEBUG是沒有這個菜單的
VS附加進來之後。如果沒有對應版本調試使用的pdb檔案是沒有辦法打斷點調試的。
再運作起來的VS中點選調試=》視窗=》子產品,用于附加調試。
再這個子產品功能中找到你對應的exe和DLL。然後看符号狀态,是否是已加載符号,如果不是,則右鍵點選對應的行,選擇加載符号,選擇代碼對應的pdb檔案。一定要注意,代碼和應用程式和PDB檔案要能對應上,否則沒有辦法調試。這個可以再每次出版本送出代碼的時候。再SVN或者git上做個記錄,把pdb産物也送出上去做備份。
通過以上步驟,就可以正常再你的代碼中增加斷點,并且通過操作調試拉。