当我使用.NET的Microsoft调试符号调试我的ASP.NET网站代码时.当我调试.NET框架代码时,我继续为大多数变量获取这个愚蠢的"结果"(当然这是由提供的Microsoft Symbol Server,我告诉VS2008获取信息,来自)
Cannot obtain value of local or argument 'cookie' as it is not available at this instruction pointer, possibly because it has been optimized away.
这就像我正在使用的代码是使用优化的编译代码.如果是这种情况,我可以告诉它不要优化吗?我在DEBUG配置中.这是非常令人沮丧的,因为我无法调试..因为我在单步执行代码时无法查看/检索局部变量的值.
任何线索/想法?
Shawn Burke描述了一种在他的博客上禁用此功能的方法.
首先,创建一个CMD,它将在没有JIT优化的情况下加载Visual Studio.
set COMPLUS_ZapDisable=1 cd /d "%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\ide\" start devenv.exe exit
进入Visual Studio项目后,请执行以下步骤:
1)右键单击您的项目文件,然后选择"属性"
2)选择"调试"选项卡并取消选中"启用Visual Studio托管过程"
3)在调试器中启动您的应用程序.
对于普通的.Net应用程序,您可以使用起始二进制文件旁边的.INI文件禁用JIT优化.这是一个如何实现这一目标的链接
http://blogs.msdn.com/jaredpar/archive/2008/08/29/disabling-jit-optimizations-while-debugging.aspx
调试ASP.Net有点不同,我不确定这是否适合你.如果您使用轻量级Web服务器(cassini)在本地进行调试,则可以将此技巧应用于Cassini本身.如果您是直接在Web服务器上调试,虽然在IIS内部我不知道如何让这个技巧工作,但希望它会引导您朝着正确的方向前进.