为什么不编辑并继续在64位CLR的工作? [英] Why doesn't Edit and Continue work on the x64 CLR?

查看:256
本文介绍了为什么不编辑并继续在64位CLR的工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

微软还解释说,他们将不会支持编辑,并在64 CLR在Visual Studio 2010中继续:

Microsoft have explained that they won't be supporting Edit and Continue under the x64 CLR in Visual Studio 2010:

当面向.NET 4.0中创建一个VS2010新的Visual C#控制台应用程序,项目的默认目标设置是针对所有的CPU(MSIL)如Visual Studio 2008的x86平台,而不是做

When creating a new Visual C# Console Application in VS2010 for .NET 4.0, the default target settings for the project is to target the x86 platform instead of Any CPU (MSIL) like Visual Studio 2008 does

[...]

添加真正的支持ENC的64位CLR是不幸的是大工作项目和其他功能都优先于这个特定更改目标平台的x86周围的工作。

Adding true support for EnC to the 64-bit CLR is unfortunately a large work item and other features were prioritized over this given the work around of changing the platform target to x86.

(从<一个href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=455103">http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=455103)

在Microsoft Connect上的描述使得它看起来好像64位编辑并继续是一项重大的架构变化。我的问题是:?什么是64位左右,使ENC不同的困难

The description on Microsoft Connect makes it appear as though 64-bit Edit and Continue is a major architectural change. My question is: what is different about x64 that makes EnC difficult?

我一直没能找到太多的技术细节在网络上的方式,除64位ENC不起作用。

I haven't been able to find much in the way of technical detail on the web, other than "64-bit EnC doesn't work".

推荐答案

编辑并继续要求编译器修补程序的运行可执行文件。这通常是通过替换所有修改过的函数完成。显然,即时编译版本,其已被丢弃的欢迎,并主叫调整为可能的新位置。

Edit and Continue requires that the compiler patches a running executable. This is typically done by replacing all altered functions. Obviously, the JITted versions thereof have to be discarded as well, and callers adjusted to possibly new locations.

这是不是64位特别困难,大概很难,因为在x86。但不同于x86的,这根本没有这样做了64呢。和x86和x64之间的差异足够大,你不能简单地把86 ENC code和改变每4 8。

This isn't especially difficult for x64, probably about as hard as on x86. But unlike x86, this simply hasn't been done for x64 yet. And the differences between x86 and x64 are big enough that you can't simply take the x86 EnC code and change every 4 in an 8.

这篇关于为什么不编辑并继续在64位CLR的工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆