Почему не работает «Редактировать и продолжить» на x64 CLR? - PullRequest
33 голосов
/ 05 июня 2009

Microsoft объяснила, что они не будут поддерживать Edit и Continue в среде x64 CLR в Visual Studio 2010:

При создании нового консольного приложения Visual C # в VS2010 для .NET 4.0 целевыми настройками по умолчанию для проекта являются целевые платформы x86 вместо любого ЦП (MSIL), как это делает Visual Studio 2008

[...]

Добавление истинной поддержки EnC в 64-битный CLR, к сожалению, является большим рабочим элементом, и другим функциям было уделено приоритетное внимание в связи с изменением цели платформы на x86.

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

Описание в Microsoft Connect создает впечатление, будто 64-битное редактирование и продолжение - это серьезное архитектурное изменение. У меня вопрос: Чем отличается x64 от EnC?

Мне не удалось найти много технических деталей в Интернете, кроме «64-битный EnC не работает».

Ответы [ 3 ]

20 голосов
/ 05 июня 2009

Редактировать и продолжить требует, чтобы компилятор исправил исполняемый файл. Обычно это делается путем замены всех измененных функций. Очевидно, что их версии JITted также должны быть отброшены, а вызывающие абоненты настроены на новые места.

Это не особенно сложно для x64, вероятно, примерно так же сложно, как и для x86. Но в отличие от x86, это просто еще не было сделано для x64. И различия между x86 и x64 достаточно велики, так что вы не можете просто взять код x86 EnC и менять каждые 4 в 8.

4 голосов
/ 07 апреля 2010

Этот пост в блоге расширяет сказанное MSalters: http://blogs.msdn.com/rmbyers/archive/2009/06/08/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx

По сути, Microsoft больше заинтересована в улучшении средств отладки x86 (например, Intellitrace), чем в улучшении средств отладки x64. Это очень тревожно, поскольку кажется, что Intellitrace в какой-то момент также придется портировать на x64, что, вероятно, приведет к дальнейшим задержкам улучшений отладки x64.

0 голосов
/ 28 августа 2013

Похоже, что новая платформа .NET поддерживает это. Из раздела подробностей .NET Framework 4.5.1 Preview

.NET Framework 4.5.1 Preview ... включает эти значительные ... улучшения:

...
64-битное редактирование и продолжение
...

По-прежнему не работает в Visual Studio 2012 с установленным предварительным просмотром .NET 4.5.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...