2010-03-15 10 views
5

Il mio IDE primario è Visual Studio 2005 e ho un grande progetto C/C++. Sono interessato a quali strumenti di analisi dei thread sono raccomandati. Con ciò intendo, voglio uno strumento, statico o dinamico, per aiutare a trovare condizioni di gara, deadlock e simili.Quali strumenti di analisi del threading consigliate?

Finora ho analizzato casualmente quanto segue: 1. Intel Thread Checker: non credo che si colleghi a VS 2005? 2. Valgrind/Helgrind: gratuito. 3. Coverity: questo è uno strumento costoso se ho capito bene.

Qualcuno ha esperienza con uno qualsiasi di questi o altri? Apprezzerei molto ogni consiglio Grazie.

+0

Su quali sistemi operativi eseguirai il debug del tuo software/accesso? –

+0

windows xp. e in misura minore linux. – glutz78

risposta

2

Il nuovo 'Concurrency Visualizer' in Visual Studio 2010 Credo che è un grande strumento di analisi LFOR threading.

+1

non sarà di aiuto su VS2005 però .... –

1

Hai guardato CHESS:?

SCACCHI è uno strumento per trovare e riprodurre heisenbug in programmi concorrenti . CHESS ripetutamente esegue un test simultaneo garantire che ogni corsa prende un interleaving differente. Se un interleaving provoca un errore, SCACCHI può riprodurre l'interleaving per migliorare debugging. CHESS è disponibile per i programmi gestiti e nativi .

+0

Il link è rotto. –

+0

Link corretto, http://research.microsoft.com/en-us/projects/chess/ –

1

Intel VTune Thread Profiler è molto bello.

0

valgrind/racegrind funziona solo su Linux (Helgrind ottenuto in pensione). ma è v buono ed è gratuito

Coverity è grande, ma costoso - non so che è roba non concorrenza però. Lo eseguiamo su v grande codebase pesantemente threaded e non raccoglie mai cose della concorrenza. Ora potrebbe essere perché il nostro codice è perfetto (ha, se solo), più probabilmente è perché non lo sta cercando. Ma ripeterò che si tratta di un ottimo analizzatore statico

1

Sto lavorando su un'applicazione pesantemente filettata che è stata scritta in origine usando le librerie di thread e sincronizzazione di Windows. L'ho trasferito su Linux/pthreads e Valgrind si è dimostrato immediatamente prezioso nel rilevare e correggere varie perdite di memoria.

Sono in procinto di utilizzare DRD & il resto della suite valgrind, finora è stato sorprendente. È stato molto facile da usare praticamente senza alcuna curva di apprendimento. Sfortunatamente questo ti aiuta solo se il tuo software funziona su Linux.

Problemi correlati