Modifica a 64 bit non consentiti quando si tenta di modificare in debug, perché?
-
03-07-2019 - |
Domanda
Ricevo questo messaggio (vedi immagine sotto) quando provo a modificare il debug. Ciò si verifica solo nel mio sistema operativo Vista64bits, non nel mio computer XP. Perché e cosa dovrei fare?
Aggiorna Ho scoperto che devo compilare in x86 per poter cambiare valore durante il debug. Quindi la mia domanda è PERCHÉ non posso farlo in x64?
alt text http://img183.imageshack.us/img183/8523/changetohe5 .png
Soluzione
Non c'è motivo tecnico, semplicemente non è implementato. Secondo alcune fonti, Microsoft vuole implementarlo dalla prossima versione del CLR.
Vedi: http://blogs.msdn.com/stevejs/ archive / 2005/11/15 / 493018.aspx # 499.593
Altri suggerimenti
Mike Stall afferma :
EnC fa alcune cose di livello molto basso che sono piuttosto specifici del sistema operativo e così limitarsi a un'unica piattaforma era principalmente un vincolo di risorse. I CLR futuri ampliano senza dubbio questo aspetto. Anche il nostro sforzo di porting è iniziato gratta in V2, e così tutto il resto di i servizi di debug dovevano essere portato anche, quindi abbiamo già avuto un molto grande oggetto qui. Inoltre, crediamo che grandi scenari per EnC sarebbe ruota attorno alle app pure-IL che lo consentono le persone a svilupparsi almeno in x86. In questi casi esiste una soluzione alternativa: attivata una macchina a 64 bit, è possibile avviare a app pure-IL come app a 32 bit in WOW, e quindi esegui EnC su di esso.
Questi sono tutti limiti del CLR, non Visual Studio, che significa se a Debugger di terze parti aggiunge EnC, lo faranno hanno le stesse restrizioni. In tutto casi, ci siamo sentiti felici che il il costo per abilitare ciascun caso era migliore trascorso a realizzare gli scenari chiave più forte.
Cambio gestore della configurazione. Si stava compilando per Any Cpu ... e Any Cpu era impostato su x64 .... Ho cambiato Any Cpu su x86 e funziona. Quindi il problema è risolto ...
Qualcuno può dirmi perché in X64 non possiamo modificare in debug? (Accetterò la risposta a questa sotto domanda se qualcuno ce l'ha).
Presumibilmente non hanno ancora implementato edit-and-continue per il codice x64. Non penso che ci sia una ragione più profonda ad esso.