我正在尝试在.NET Framework中调试一些代码.不幸的是,许多变量都被优化掉了,由于流优化,我无法可靠地设置指令指针.
是否有可能强制运行时不使用.NET系统DLL的ngen'd版本,而是使用MSIL,强制优化为'off'?
注意:我尝试使用INI技巧来设置AllowOptimize = false,但它没有任何区别.
Den*_*kem 12
这是另一种选择(来自http://martin.bz/asp-net-mvc-source-debugging-the-easy-way):
转到System.Web.Mvc .dll所在的目录:
C:\ WINDOWS \装配\ GAC_MSIL\System.Web.Mvc\2.0.0.0__31bf3856ad364e35 \
创建文件System.Web.Mvc.ini
Run Code Online (Sandbox Code Playgroud)[.NET Framework Debugging Control] GenerateTrackingInfo=1 AllowOptimize=0下次进入MVC源代码时,您可以检查所有变量.
有关详细信息,请访问http://msdn.microsoft.com/en-us/library/9dd8z24x.aspx
得到了约翰罗宾斯的答案.基本上,在你的环境变量中坚持COMPLUS_ZapDisable = 1(包裹在一个蝙蝠中以避免未经优化地运行整个系统)并禁用VS主机进程.
另一个选项是新的.NET Reflector Pro,它允许您选择性地反编译/重新编译未经优化的程序集.没有必要使用参考源但是有良好的备份.
http://www.red-gate.com/products/reflector/features_pro.htm
| 归档时间: |
|
| 查看次数: |
3099 次 |
| 最近记录: |