[Visual Studio 2010] 善用 IntelliTrace 將客戶端的程式所發生的錯誤還原
這是VS2010所擁有的新功能,不一定需要TFS,前天上百敬老師的課,又將缺少的東西所補了一塊起來,我們都知道IntelliTrace可以將程式的執行歷程記錄下來
開始前先確認有無開啟IntelliTrace功能
VS2010 Tool bar→Tools→Options→Enable IntelliTrace
程式在執行時,若進入中斷點,可以看到右邊視窗的IntelliTrace所呈現的效果
若沒有設定中斷,按下Break All也是會馬上停下來,讓你觀察現在程式執行到哪裡了。
這些都是開發工具所帶給我們的好處,那End User端呢?他們沒有裝VS2010怎麼辦?我們可以還原當時的狀況嗎?
PS.在這裡所指的End User,是指測試/QA團隊或是客戶。
我們可借助IntelliTrace.exe,它的路逕如下:
x86:C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\TraceDebugger Tools
x64:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\TraceDebugger Tools
這時就要靠batch script來讓幫我們處理,將以下文字複製並另存成 intellitrace.bat(請依自己的實際狀況修改)
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\TraceDebugger Tools\IntelliTrace" launch /collectionplan:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\TraceDebugger Tools\en\CollectionPlan.xml" /logfile:Demo.itrace Demo.exe
CollectionPlan.xml,TraceInstrumentation預設是沒有啟用的,請自行備份該檔案,並將所有的enable=”false”改成true
PS.End User端要有以下環境
1.有管理員權限能執行應用程式
2.有管理員權限能執行命令提示字元
3.要有IntelliTrace.exe檔案,這不是MS預設安裝的東西,所以要Copy上述資料夾一份到End User端。
把intellitrace.bat擺到exe目錄下,然後執行intellitrace.bat,它就會幫我們叫起Demo.exe,並且產生Demo.itrace檔案,所有的操作都會記在Demo.itrace檔案
若問題發生了,你也可以請End User回傳Demo.itrace檔案,讓你用VS2010開啟,還原當時候的狀況。
HelloWorld.itrace記錄了當時執行機器的環境,發生Exception的狀資料,執行緒處理狀況
大家應該都只會關心Exception Data,把它展開,就可以看到有哪些Exception
點Exception項目,就可以看到追蹤項目。由此就可以知道,End User是按下哪個按鈕所觸發的Exception了
當然,軟體會發生錯誤不只是會有Exception,很多時候都是邏輯錯誤引起,這只是幫我們快速找到顯性的bug而已。
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET