2011-09-15 13 views
7

Nel progetto su cui sto lavorando, al momento abbiamo un numero sconosciuto di test di sfarfallio che non riescono a velocità diverse (da una corsa all'altra a una volta ogni 5000 corse) che ci ha portato a credere che abbiamo alcuni seri Heisenbug da risolvere. La maggior parte delle volte le istruzioni di tracciamento nel codice modificano il tempo necessario per eliminare questi errori, o almeno fanno in modo che si verifichino meno spesso, ma ovviamente questa non è una correzione valida.Esistono strumenti di debug di concurrency per C# .NET in VS2010

Ci chiediamo se ci sono strumenti similari a CHESS (http://research.microsoft.com/en-us/projects/chess/download.aspx) che funzionano in/con Visual Studio 2010 per le applicazioni di test di stress e rilevare potenziali condizioni di gara e deadlock?

+1

La seguente domanda SO potrebbe aiutare: http://stackoverflow.com/questions/1715822/unit-test-for-thread-safe-ness –

+1

Grazie - vieni utili informazioni lì, in particolare sulla scrittura di test di sicurezza dei dati e Typemock Racer. Anche le informazioni qui (http://stackoverflow.com/questions/537014/using-tdd-to-drive-out-thread-safe-code) sono state utili. –

+0

Qualche possibilità si sta provando a * unit test * classi che trattano singoletti e oggetti statici che sono scritti in qualche * unit test * e letti in altro? –

risposta

2

In Visual Studio 2010 (non sono sicuro quali siano esattamente le edizioni) è possibile creare una nuova sessione di profilazione con l'opzione "Concurrency". Questo dovrebbe rilevare i deadlock che stai cercando. È quindi possibile profilare un test unitario per automatizzare le numerose esecuzioni.

Impossibile trovare molte immagini dei risultati, ma ecco un esempio example http://i.msdn.microsoft.com/ee336027.Shafi_Figure2(en-us,MSDN.10).png

+0

Disponibile solo nell'edizione Ultimate. –

+0

E sfortunatamente non abbiamo Ultimate :( –

+5

http://msdn.microsoft.com/en-us/library/dd537632.aspx http://msdn.microsoft.com/en-us/magazine/ee336027 .aspx Questa è la documentazione su come utilizzare VS2010 Concurrency Visualizer - Per il vantaggio degli utenti StackOverflow – Bhuvan

2

Un altro strumento è da Microsoft Research solo, è possibile scaricarlo da Codeplex - chesstool.codeplex.com. Supporta le librerie .Net 4.0, la prossima versione di Chess, ma non so se sei in grado di usarlo.

+0

Ne sto cercando uno che funzioni con Visual Studio 2015 ma sia altrettanto potente –

Problemi correlati