代码之家  ›  专栏  ›  技术社区  ›  Tim Robinson

为什么不在x64 CLR上编辑并继续工作?

  •  33
  • Tim Robinson  · 技术社区  · 17 年前

    Microsoft解释说,他们将不支持Visual Studio 2010中x64 CLR下的编辑和继续:

    在VS2010 for.NET 4.0中创建新的Visual C#Console应用程序时,该项目的默认目标设置是以x86平台为目标,而不是像Visual Studio 2008那样以任何CPU(MSIL)为目标

    不幸的是,将对EnC的真正支持添加到64位CLR是一个很大的工作项,考虑到将平台目标更改为x86的工作环境,其他功能优先于此。

    (来自 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=455103 )

    x64有什么不同之处使EnC变得困难?

    除了“64位EnC不工作”,我在网上找不到更多的技术细节。

    3 回复  |  直到 17 年前
        1
  •  20
  •   MSalters    17 年前

    “编辑并继续”要求编译器修补正在运行的可执行文件。这通常是通过替换所有修改过的函数来完成的。显然,JITted版本也必须被丢弃,呼叫者也必须调整到可能的新位置。

        2
  •  4
  •   Eric    16 年前

    这篇博文进一步阐述了MSalters的观点: http://blogs.msdn.com/rmbyers/archive/2009/06/08/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx

    基本上,微软对改进x86调试工具(例如Intellitrace)比对改进x64调试工具更感兴趣。这相当令人担忧,因为Intellitrace似乎也必须在某个时候移植到x64,这可能会进一步延迟对x64调试的改进。

        3
  •  0
  •   oleksii    13 年前

    新的.NET框架似乎支持这一点。从的详细信息部分 .NET Framework 4.5.1 Preview

    .NETFramework 4.5.1预览版。。。包括这些 重要的增强功能:


    64位编辑并继续
    ...

    在安装了.NET 4.5.1预览版的Visual Studio 2012中仍然不起作用。

    推荐文章