关闭 .net JIT 编译器优化

7
当我们远程调用一个使用泛型的方法时,远程接收器似乎无法从其他相同名称的方法中发现我们的方法。在附加了 .net 源代码进行调试后,我发现了 MethodInfo.MakeGenericMethod 的调用。但是,由于已经被 JIT 优化,我不能查看任何周围的数据。
几周前,我找到了一个注册表设置,可以禁用此设置(它明确提到这有助于使用源代码进行调试)。然而,由于我的疏忽,我已经不记得我如何操作了,并且现在很难再次找到它。
1个回答

6
我不知道有关注册表解决方案的情况,但您可以使用INI文件来禁用JIT优化。
简短的版本是创建一个.ini文件(例如myapp.ini),并包含以下内容。
[.NET Framework Debugging Control]
GenerateTrackingInfo=1
AllowOptimize=0

这里有完整的解释


1
这是什么异端邪说——一个不是XML的.NET配置文件!!?? - Michael Burr
我认为它必须在CLR的win32级别上实现。 - Preet Sangha
@Mike B:必须是 .ini 文件,因为在那个阶段 CLR 还没有开始加载任何 .Net 程序集,所以还没有加载任何 XML 库。 - Pop Catalin
谢谢。这很有帮助。虽然不是特别大的帮助,但足以让我们更好地了解问题。如果有人感兴趣,我已经在“Microsoft Connect”上提出了我的原始问题:对我来说,远程反射存在一个问题,即具有3个或更多泛型参数的重载通用方法。感谢大家的帮助。preet - Preet Sangha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接