2010-05-06 18 views
14

Sono curioso di sapere se c'è un modo per modificare il codice in C# VS 2008 proprio quando ha raggiunto un punto di interruzione e sto camminando attraverso il codice ... posso modificare il codice codice (come il valore in una variabile o se la mia linea di passo sta per lanciare una dichiarazione if ... posso modificare la dichiarazione if ... ecc.)? Finora, devo smettere di eseguire VS, modificare il codice, quindi premere F5 e attendere fino a quando il punto di interruzione non viene colpito nuovamente.Modifica codice in Visual Studio 2008 in modalità di debug

Quando il punto di interruzione colpisce, e sto percorrendo il codice e tento di modificare il codice, viene visualizzato un messaggio "Le modifiche non sono consentite quando il debugger è stato collegato a un processo già in esecuzione del codice in fase di debug è stato ottimizzato in fase di costruzione o di esecuzione. "

+0

Hai provato? – SLaks

+0

Quale lingua? – SLaks

+0

Sto usando C#. L'ho provato, ma ricevo un messaggio che dice "Le modifiche non sono consentite quando il debugger è stato collegato a un processo già in esecuzione del codice in fase di debug ottimizzato in fase di compilazione o di esecuzione". – user279521

risposta

6

Ci sono solo alcuni motivi per cui motivo per cui Modifica + Continua sarà disabilitato nella compilazione di Debug. Innanzitutto è un sistema operativo a 64 bit, E + C funziona solo per il codice a 32 bit. Risolto il problema con Project + Properties, scheda Build, Platform Target = x86.

È anche un'opzione che potrebbe essere stata disattivata. Strumenti + Opzioni, Debug, Modifica e Continua, Abilita casella di controllo.

Se questo non aiuta, dicci qualcosa di più sul tipo di codice che stai eseguendo il debug, il modello del progetto che hai selezionato quando hai avviato il progetto, come hai ottenuto il debugger da interrompere e una traccia dello stack copiata da la finestra Stack di chiamate.

+0

La piattaforma di destinazione era "Qualsiasi PROCESSORE". Ho cambiato in x86, E & C non funziona ancora. Strumenti + Opzioni, debug. La casella di controllo E & C è abilitata. – user279521

+0

Sto eseguendo il debug del codice C# nel codice sottostante. Il modello di progetto come WebForm.aspx. Ho inserito un punto di interruzione per interrompere il debugger. Come posso ottenere la copia traccia stack? – user279521

+2

@user, leggi questo: http://whyiamright.wordpress.com/2007/12/20/aspnet-edit-and-continue-in-visual-studio-2005/ –

4

Sì, è possibile.
Questo è chiamato Edit and Continue.
Si noti che ha qualche limitations.

MODIFICA: È necessario passare a una build di debug.

+0

Come si fa "Modifica e continua"? – user279521

+0

Sfondare nel debugger (o premere un punto di interruzione o premere il pulsante di pausa) e * Modifica * il codice quindi * Continua * con il pulsante Riproduci o F5 (o F10 o F11 a seconda di quello che si sta facendo) – Paolo

0

In risposta a questa domanda:

posso modificare il codice (ad esempio il valore in una variabile o se il mio linea stepthrough è in procinto di colpire un se affermazione ... posso modificare la proposizione .... ecc.)?

Lei non può pop un nuovo valore in una variabile direttamente, ma cosa si può fare è questo:

  1. Impostare un punto di interruzione
  2. Quando quel punto di interruzione viene colpito, fare clic sulla freccia a sinistra margine e trascinarlo fino a una riga precedente
  3. Ora è possibile aggiungere il codice per cambiare le circostanze (per esempio, è possibile impostare una variabile per un nuovo valore, aggiungere/rimuovere elementi da una collezione, ecc)

Vedere le altre risposte sull'abilitazione Modifica & Continua - in particolare, assicurati di essere in modalità Debug.

0

Per risolvere questo problema ho fatto quanto segue ...

BUILD> Configuration Manager

Configurazione soluzione attiva: DEBUG progetto di configurazione contesto: DEBUG

poi Strumenti> Opzioni> Debug> EDIT & CONTINUA assicurarsi modificare & continuano viene selezionato

poi BUILD> CLEAN SOLUTION quindi BUILD> REBUILD SOLUTION

Quindi avviare il debug, quindi mettere in pausa, quindi il codice deve essere modificabile

1

Per modificare il valore di una variabile o impostare una proprietà in modalità di interruzione passare alla finestra Immediata, impostare il nuovo valore e premere Invio, ad es.

strValue = "newValue" 
Calendar1.Enabled = true 

Per recuperare un valore, è sufficiente stamparlo sulla finestra e.e.

?strValue 
?Calendar1.Enabled 
1
  1. Interrompere l'esecuzione dell'app.
  2. Vai a Strumenti> Opzioni> Debug> Modifica e continua
  3. Disattiva "Abilita modifica e continua".
Problemi correlati