當你在使用 Reference Source functionality in VS 2008
調試.Net 的源代碼的時候,你會發現很多變量沒法再調試時檢視。
這是因為源代碼伺服器上提供的代碼預設是為最終銷售優化過的(optimized )。這些值雖然你沒法檢視,但不會阻斷單步執行,大部分情況下你可能不需要檢視。
但如果你真的需要檢視,這裡還是有一個辦法的。
你需要靠訴CLR不要加載pre-JIT(也加NGEN)鏡像。下面是具體步驟:
首先,建立一個CMD檔案。檔案裡包含這麼幾步,設定一個環境變量,随後啟動Visual Studio。 我把這個檔案命名為"NoOptDevEnv.cmd",具體内容如下:
set COMPLUS_ZapDisable=1
cd /d "%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\ide\"
start devenv.exe
exit
我把這個CMD檔案檔案放在我的桌面,當我需要禁止優化(optimizations)的時候就用這個檔案啟動VS。
一旦Visual Studio啟動,還需要做以下步驟:
- 右鍵單擊你的項目檔案,選擇“屬性”
- 選擇“調試(Debug)”,取消勾選"允許Visual Studio托管程序(Enable the Visual Studio Hosting Process)"
- 在調試模式啟動你的程式。
現在,你可以看到所有的本地和成員變量的值了:
原文:
http://blogs.msdn.com/b/sburke/archive/2008/01/29/how-to-disable-optimizations-when-debugging-reference-source.aspx