有沒有碰到過程式啟動就因為異常直接crash?有沒有碰到程式啟動之後什麼反應也沒有?有沒有碰到過程式啟動之後去觸發另一個程序失敗?有沒有碰到别人的程式調用了你的代碼,出現問題以後,讓你來調查,而你隻有你的源代碼,該怎麼辦?
碰過這樣的問題,應該都會很頭疼吧,如何診斷問題呢?最簡單的當然是Debug吧,可是當程式沒有啟動的時候,我們不能Attach to process...因為程序還不存在。但如果等啟動程式再Attach,啟動時的代碼段早就過了。
當然你還有一種選擇,就是寫Log,但是Log的資訊都是有限的,而且沒有單步調試,很難跟蹤到錯誤的原因。
是以,對我們程式員來說,最簡單當然是Debug。該怎麼辦呢?我們需要就是gflags.exe。該怎麼用呢?
輕按兩下打開gflags.exe,選擇Image File标簽。
在Image欄裡輸入你希望調試的程式名。比如,mstest.exe。(按Tab)
勾選Debugger并輸入vsjitdebugger.exe。
點選OK或者Apply。
再次啟動你的程式吧,這時候就可以看到VS Debugger的調試選框。
勾選“Manually choose the debugging engines”選框。
并選擇打開你的代碼的VS。
選擇你的Debugger engine吧,如果你是.net 4.0的代碼,那麼就選擇Managed (v4.0)。
終于,你的VS已經可以Attach到該啟動程式中了。
嘗試下gflags.exe的威力吧,真的很好用,幫我解決了很多問題。強力推薦。