在使用Reference Source调试.Net 源代码时如何取消optimizations(代码优化)-翻译

当你在使用Reference Source functionality in VS 2008 调试.Net 的源代码的时候,你会发现很多变量没法再调试时查看。

image

这是因为源代码服务器上提供的代码默认是为最终销售优化过的(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启动,还需要做以下步骤:

  1. 右键单击你的项目文件,选择“属性”
  2. 选择“调试(Debug)”,取消勾选"允许Visual Studio托管进程(Enable the Visual Studio Hosting Process)"
  3. 在调试模式启动你的程序。

现在,你可以看到所有的本地和成员变量的值了:

image

原文:http://blogs.msdn.com/b/sburke/archive/2008/01/29/how-to-disable-optimizations-when-debugging-reference-source.aspx

posted on   m2land  阅读(1868)  评论(3编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
历史上的今天:
2008-01-14 The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

导航

统计

点击右上角即可分享
微信分享提示