10

Sto lavorando a un progetto C# e Silverlight e di tanto in tanto mi imbatto in un problema in cui i miei punti di interruzione non vengono più colpiti durante il debug. Nell'editor non stanno diventando trasparenti quindi so che il codice corretto viene caricato ed eseguito.I punti di interruzione non vengono colpiti durante il debug in VS10

Un esempio potrebbe essere:

ho Value con un getter e setter ed è associato a un controllo. Quando inserisco un punto di interruzione nel setter e cambio il valore di Value dal controllo, il punto di interruzione non viene colpito.

So che un reset di IIS risolve questo problema ma mi piacerebbe sapere la causa. Qualcun altro trova un comportamento simile? Se qualcuno fosse in grado di indicarmi la direzione di una possibile causa, sarebbe molto apprezzato.

risposta

8

C'è un'opzione in Visual Studio 2010:

  • Strumenti -> Opzioni ...
  • Debug -> Generale
  • "Passo sopra le proprietà e gli operatori (Managed solo)"

Assicurarsi che questo non sia selezionato. Ciò presuppone che il punto di interruzione sia un cerchio rosso solido, indicando che VS ha trovato i simboli di debug per esso.

In alternativa, questi elementi di codice possono essere decorati con uno dei vari attributi di debug, ovvero DebuggerStepThroughAttribute, DebuggerNonUserCodeAttribute e DebuggerHiddenAttribute. Questi potrebbero impedire al debugger di entrare nel metodo, anche se c'è un punto di interruzione.

Ovviamente, se il codice di cui si sta eseguendo il debug è stato ottimizzato, potrebbe sembrare che manchi le linee. Non sono sicuro di cosa succederà se proverai a interrompere una linea che è stata ottimizzata.

Se il punto di interruzione è vuoto (non rosso fisso), Visual Studio probabilmente non riesce a trovare i simboli di debug per il codice.

Se un reset di risolvere il problema, forse ci sono differenze tra il codice in fase di debug e le file di origine/simboli, v'è la possibilità di rendere questo meno rigide:

  • stessa Area opzioni sopra.
  • "Richiedi file di origine in modo che corrisponda esattamente alla versione originale"
+0

Questo era un po 'lungo il filo che stavo pensando. Grazie per le informazioni sulle impostazioni. Abbastanza sicuro che questo dovrebbe prendersi cura di esso. –

0

Ho avuto questo problema da poco. Anche se non ho trovato la causa esatta, una semplice soluzione era quella di verificare che l'app fosse in esecuzione in modalità di debug (al contrario della versione) e pulire/ricostruire la soluzione.

+0

So che questo non è il problema. La prima cosa che controllo ogni volta. Grazie comunque. –

1

Molte volte mi trovo ad affrontare questo problema durante le app Winforms. La cosa semplice che faccio è, riavviare VS prima di pulire e ricostruire la soluzione. Quindi se non funziona niente, basta eliminare la directory bin e lasciare di nuovo la ricostruzione. L'ultima opzione che faccio è riavviare la macchina.

0

Trovato questa domanda durante il tentativo di capire il motivo per cui i punti di interruzione il mio progetto non venivano colpiti durante il tentativo di eseguire codice in VS2010

Risolto esso, cercando in proprietà del progetto sotto avanzate Compile options e l'impostazione Genera Debug Informazioni a pieno.

Vale la pena menzionare I jump in code che desidero eseguire il debug utilizzando il pratico TestDriven.net "Test With -> Debugger" facendo clic con il pulsante destro del mouse sulla funzione che desidero eseguire il debug.

Problemi correlati