使用MS的Symbol Server调试.NET代码 - VS不显示变量的值

Pur*_*ome 18 .net debugging debug-symbols

当我使用.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.
Run Code Online (Sandbox Code Playgroud)

这就像我正在使用的代码是使用优化的编译代码.如果是这种情况,我可以告诉它不要优化吗?我在DEBUG配置中.这是非常令人沮丧的,因为我无法调试..因为我在单步执行代码时无法查看/检索局部变量的值.

任何线索/想法?

Cam*_*and 19

Shawn Burke描述了一种在他的博客上禁用此功能的方法.

首先,创建一个CMD,它将在没有JIT优化的情况下加载Visual Studio.

set COMPLUS_ZapDisable=1
cd /d "%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\ide\"
start devenv.exe
exit
Run Code Online (Sandbox Code Playgroud)

进入Visual Studio项目后,请执行以下步骤:

1)右键单击您的项目文件,然后选择"属性"

2)选择"调试"选项卡并取消选中"启用Visual Studio托管过程"

3)在调试器中启动您的应用程序.


Jar*_*Par 7

对于普通的.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内部我不知道如何让这个技巧工作,但希望它会引导您朝着正确的方向前进.