2009-06-05 15 views
33

Microsoft ha spiegato che essi non sosterranno Modifica e continuazione sotto il CLR x64 in Visual Studio 2010:Perché Edit e Continue non funzionano sul CLR x64?

Quando si crea un nuovo Visual C# applicazione console in VS2010 per .NET 4.0, le impostazioni di default per il progetto è quello di colpire la piattaforma x86, invece di qualsiasi CPU (MSIL) come Visual Studio 2008 fa

[...]

Aggiunta di vero supporto per EnC al CLR 64 bit è, purtroppo, un grande elemento di lavoro e altre caratteristiche erano prioritarie su questo dato il lavoro attorno al cambiamento dell'obiettivo della piattaforma su x86.

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

La descrizione su Microsoft Connect fa apparire come se a 64 bit Modifica e continuazione è un cambiamento importante architettonico. La mia domanda è: che cosa c'è di diverso in x64 che rende difficile EnC?

Non sono stato in grado di trovare molti dettagli tecnici sul Web, a parte "l'EnC a 64 bit non funziona".

+2

Blog datato 26 giugno 2013: http://blogs.msdn.com/b/dotnet/archive/2013/06/26/announcing-the-net-framework-4-5-1-preview.aspx '" Ora abbiamo x64 Modifica e continua (EnC) disponibili in Anteprima di Visual Studio 2013 "' – gmaran23

risposta

19

Modifica e Continua richiede che il compilatore patch un eseguibile in esecuzione. Questo in genere viene fatto sostituendo tutte le funzioni modificate. Ovviamente, anche le versioni JITted devono essere scartate, ei chiamanti adattati a possibili nuove posizioni.

Questo non è particolarmente difficile per x64, probabilmente tanto difficile quanto su x86. Ma a differenza di x86, questo semplicemente non è stato ancora fatto per x64. E le differenze tra x86 e x64 sono abbastanza grande che non si può semplicemente prendere il codice x86 EnC e cambiare ogni 4 in un 8.

+5

Questa è una spiegazione plausibile.Ma dato che VS2005, VS2008 e ora VS2010 hanno funzionato con EnC a 32 bit, e ciascuno di questi nuovi framework e IDE ha avuto una varietà di nuove e impressionanti funzionalità in altre aree, mi chiedo se non avrebbero potuto trovare un po 'di tempo per spendere su EnC a 64 bit. –

+15

Il corretto debug di x64 è stato "in arrivo" da quando è stato annunciato il primo VS2005. Finora abbiamo visto 3 versioni principali di IDE e sviluppatori a 64 bit che sono ancora trattati come cittadini di seconda classe. – nathanchere

+4

Fatelo quattro; VS2012 non lo supporta neanche. –

4

Questo post del blog si espande su ciò che MSalters detto: http://blogs.msdn.com/rmbyers/archive/2009/06/08/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx

In sostanza, Microsoft è più interessata a migliorare gli strumenti di debug x86 (ad es. Intellitrace) piuttosto che a migliorare gli strumenti di debug x64. Ciò è piuttosto preoccupante, dal momento che sembra che Intellitrace debba anche essere portato su x64 ad un certo punto, il che probabilmente ritarderà ulteriormente i miglioramenti al debugging x64.

0

Sembra che il nuovo framework .NET supporti questo. Dai dettagli sezione del .NET Framework 4.5.1 Preview

Il .NET Framework 4.5.1 Anteprima ... include questi significativi miglioramenti ...:

...
64 bit Modifica e continuazione
..

Ancora non funziona in Visual Studio 2012 con .NET 4.5.1 Anteprima installata.

Problemi correlati