2010-06-29 29 views
9

Occasionalmente durante il debug il debugger salta in ordine casuale. A volte passo in una funzione all'interno di un'altra funzione e invece di andare alla riga successiva salta in un luogo apparentemente casuale nel futuro. a volte a una linea a metà di un'altra funzione. Sembra sempre rispettare i punti di interruzione, anche se, se un punto di interruzione viene impostato in futuro, non salterà mai oltre.Debugger Visual Studio 2010 saltato

Io corro a 64 bit Windows 7 e Visual Studio 2010 Ultimate. Non sto usando discussioni. Questo non è mai successo per me in Visual Studio 2008. Come posso risolvere questo problema?

+0

quale lingua (C++ nativo o linguaggio basato su .NET)? Sei sicuro che la funzione in cui stai entrando non sia compilata con ottimizzazioni (che possono sicuramente confondere un debugger). –

+0

Sto usando vb.net. La configurazione della soluzione è impostata su Piattaforma 'Debug' 'Qualsiasi CPU' – Michael

+0

Utilizzo dei thread? Importante menzionarlo. –

risposta

4

sto correndo in problemi simili debug di un programma C# con Visual Studio 2010 su una macchina XP. Il debugger salta casualmente su qualche altra linea o sul prossimo punto di interruzione.

Sembra che Microsoft ha rilasciato una correzione per questo nel SP1.

+2

Ho appena controllato il collegamento Microsoft sopra per un aggiornamento. Secondo il post del 12/8/2010, una correzione per questo è nella beta per il service pack VS. Hallelujah! Ora devo solo aspettare che l'SP sia definitivo perché ho troppa paura di installare il codice beta. – user171197

+0

Aveva lo stesso problema. Installato la versione di rilascio di SP1, problema risolto. Grazie per aver postato questo! Correzione –

+1

: * era * corretto. :( –

3

Sei sicuro che l'assembly che il tuo codice chiama ha simboli di debug? Forse stai facendo riferimento a una DLL che è stata compilata in modalità di rilascio.

5

Avete ottimizzazioni attivate? Se il programma è altamente ottimizzato, l'ordine di esecuzione può essere eliminato e le cose possono essere espanse o riorganizzate in modi che non sono sempre chiari.

3

Questo può accadere quando il debugger è in esecuzione contro il file PDB che non corrispondono al codice sorgente che si sta guardando. Assicurarsi che il cestino (o da cui si sta eseguendo) sia aggiornato e sia stato creato dallo stesso codice sorgente che si sta eseguendo nel debugger.

0

Fare clic su Ricrea soluzione.

+0

non funziona, .. – toto

3

Stai utilizzando thread o background worker? Quando eseguo il debug, credo che tutti i thread siano in pausa, quindi potrebbe passare da uno all'altro. Altrimenti potresti avere informazioni di debug aggiornate, eliminare le cartelle bin e obj e creare una build pulita.

3

Ciò può verificarsi anche quando la configurazione della soluzione di debug è aggiornata, ma si tenta di eseguire il debug del programma nella configurazione di rilascio (se non è aggiornato) ... o viceversa.

È possibile passare avanti e indietro tra esecuzione in Debug o Release configurazione utilizzando il menu a discesa accanto al verde 'giocare' freccia nella parte superiore dello schermo.

+0

È in VB.NET, il menu a discesa Configurazione della soluzione non è mostrato per impostazione predefinita. Personalizza la barra degli strumenti per includerla. –

1

Ho avuto un problema simile in Visual C++ 2008 su Windows 7 a 32 bit di recente. Diversi minuti prima che comparisse il problema, una finestra di dialogo di sistema "VC.exe ha riscontrato un problema e deve uscire" è stato visualizzato ma la finestra di Visual C++ sembrava sopravvivere.

Dopo apparve prima il problema, ho provato diversi modi per ottenere di nuovo a lavorare come ricostruire la soluzione o il riavvio di Visual Studio. Tuttavia, ha continuato a comportarsi in modo strano: non è riuscito a collegarsi a un file oggetto che non avevo toccato per settimane, visualizzato "Il punto di interruzione non verrà colpito al momento. Il codice sorgente è diverso dalla versione originale. " ecc.

Niente ha aiutato fino a quando ho riavviato il computer e, infine, ho ricostruito la soluzione (due volte, in realtà).

Problemi correlati