1. 程式人生 > >[Visual Studio] VS2012除錯時很慢的解決方案

[Visual Studio] VS2012除錯時很慢的解決方案

VS2010除錯極慢獲取出現宕機,因為啟動了IntelliTrace

Visual Studio 2010 Ultimate 版本有個新功能IntelliTrace(智慧跟蹤),IntelliTrace被引入到Visula Studio中來加速我們對.NET應用程式的除錯,它通過對預先設定的事件和方法在執行過程中的跟蹤並將其有效地傳遞給除錯執行者,從而快速的傳遞程式在執行過程中的狀態和各種資訊來幫助開發者更好的除錯程式,快速的發現問題。實際上,在Visual Studio 2010之前,Microsoft Visual Stuido已經幫助我們很好的繼承了除錯工具,比如對變數的監控,對堆疊的檢視等等,並且允許設定斷點進行單步除錯等。所有的這些都在很好的幫助開發者來了解程式在不同的執行過程中的狀態以及檢測是否按照預先實際的邏輯進行運轉,而且更多的,我們通過斷點後監測程式狀態來發現問題所在。而這樣所存在的問題是,一些邏輯上的錯誤可能發生在斷點執行之前,而且很可能是一些無法追查。開發者必須停止當前的除錯,重新設定斷點並啟動除錯,而這樣的試驗過程往往需要很多次才能找到正確的位置來設定斷點。IntelliTrace智慧的將一些除錯資訊和程式狀態自動的跟蹤並實施的展現給開發人員,從而減少了需要程式設計師找到適當的斷點才能跟蹤和監控程式執行狀態的過程。

Visual Studio提供給我們兩個方式來控制其蒐集資訊的內容源,一個是IntelliTrace events only,僅僅收集智慧跟蹤事件和除錯中斷的相關資料;另外一個是IntelliTrace events and call information,這個就會收集除了IntelliTrace事件之外對一個方法呼叫的進入和退出的各種資料。下邊我們來看看在Visual Studio 2010中如何設定IntelliTrace的跟蹤選項。

進入到工具 --> 選項 --> IntelliTrace。它在預設狀態下是啟用的,但是,僅捕捉事件,因為捕捉事件是便宜的。然而,當你開始跟蹤所有這些呼叫資訊時,真正的價值開始顯現出來了。你每一次除錯的時候,IntelliTrace都將彈出來,你在動態除錯的時候可以使用這個歷史性的除錯工具。假如我在那裡並且有一個斷點,但是,我要備份和重新設計這個斷點,我可以使用IntelliTrace完成這個任務。

使用IntelliTrace捕捉到除錯程序的其他人可以把記錄以及.dlls和pdbs檔案傳送給你,你可以重放它們的程序。這個程序也許進入到資料庫(你沒有這個資料庫),它也許是採用你不能複製的方法設定的,它可能在你不能企及的網路上,但是,你不用擔心,因為你擁有記錄以及.dlls和pdbs檔案,你可以重放。

當然,擁有原始碼會更好,因為那樣你就能夠看到這個程式碼好像是在你自己的機器上除錯它一樣。這對於在你的機器上執行正常,在其他人的機器不能執行的那些神祕的故障來說是非常好的。它對於多執行緒的情況也是非常好的,當你經過這個應用程式的時候,這個軟體瑕疵就消失了,但是,在正常速度執行時,這個軟體瑕疵又出現了。

2、如果還沒解決問題

重新設定vs2010的環境(在vs2010命令提示符下,執行devenv.exe /resetuserdata)

3.個人建議:

如何設定之後除錯應該是非常快了