Esiste uno strumento per monitorare gli oggetti di sincronizzazione (mutex, eventi, semafori) in Windows?
-
03-07-2019 - |
Domanda
In Windows, esiste uno strumento per monitorare lo stato degli oggetti di sincronizzazione dei processi? vale a dire.
- evento / mutex: segnalato o non segnalato
- semaforo: count
Meglio ancora, per registrare quale thread ha fatto cosa, ad es. " thread # 5421 Evento segnale - testevt "
Soluzione
Gestisci utilizzo: handle -s == > Stampa il conteggio di ogni tipo di handle aperto.
[EDIT] :
Come monitorare lo stato degli oggetti di sincronizzazione dei processi utilizzando Process Explorer.
Apri Process Explorer
- Fai clic sul tuo exe nella sezione del processo (ad esempio: MyApp.exe)
- Fai clic su
Mostra riquadro inferiore
(o premiCtrl + L
). Questo mostrerà tutti gli oggetti di sincronizzazione. (ad esempio: myEvent) - Fai clic destro sulla sincronizzazione oggetto (ad esempio: myEvent) e fare clic Proprietà ... nel menu di scelta rapida.
-
Questo porta i dettagli dell'oggetto di sincronizzazione. Nella scheda
Dettagli
, puoi vedereInformazioni sull'evento
(se l'oggetto synch è un evento): fornisce informazioni su state (se viene segnalato l'oggetto di sincronizzazione)Informazioni sul semaforo
(se l'oggetto synch è un semaforo): Fornisce il conteggio del semaforo.
Altri suggerimenti
Dai un'occhiata a ThreadChecker e Parallel Studio di Intel. La maggior parte dei loro strumenti si trova su Visual Studio.
http://software.intel.com/en-us/intel- VTune /
Thread Validator fa ciò che stai descrivendo.
Monitora thread, stato dei blocchi, singoli oggetti thread. Molto più veloce del Thread Checker di Intel, ma diverso livello di dettaglio.
Windbg può essere utile ma devi imparare come usarlo.