Domanda

Sto utilizzando VS2010 Beta 2 per eseguire il debug di codice multi-thread.Adoro gli stack paralleli, ecc.

Ho una domanda, però:Ho un punto di interruzione impostato in un metodo che può essere chiamato da più thread.Una volta raggiunto il punto di interruzione, voglio davvero mantenere l'attenzione sul thread che ha attivato quel punto di interruzione.Tuttavia, quando premo "passaggio", VS passa spesso a un altro thread (diciamo che mi sono fermato sul thread 1, ma nel frattempo il thread 2 raggiunge il mio punto di interruzione).

So che posso bloccare manualmente i thread nella finestra dei thread.C'è un modo per farlo automaticamente: in pratica, una volta raggiunto un punto di interruzione, congela tutti i thread tranne quello corrente finché non premo F-5?

È stato utile?

Soluzione

Non che ne sia a conoscenza, tuttavia potresti disabilitare il tuo punto di interruzione mentre procedi.

Quando sono preoccupato di confondere molti thread tendo a tenere aperta la finestra dei thread e prendere nota degli ID dei thread.

Altri suggerimenti

Ho appena rilasciato un'estensione di Visual Studio 2010 che fa esattamente quello che stai cercando.Ed è gratis :).

Presentazione

Questa estensione di Visual Studio 2010 aggiunge due scorciatoie e pulsanti della barra degli strumenti per consentire agli sviluppatori di concentrarsi facilmente su singoli thread durante il debug di applicazioni multi-thread.

Riduce drasticamente la necessità di accedere manualmente alla finestra Thread per congelare/scongelare tutti i thread tranne quello che deve essere seguito e quindi aiuta a migliorare la produttività.

Caratteristiche

Limita l'ulteriore esecuzione solo al thread corrente.Congelerà tutti gli altri thread.Scorciatoia:CTRL+T+T o pulsante Fiocco di neve.Passa al thread singolo successivo (in base all'ID).Cambierà il thread corrente e congelerà tutti gli altri thread.Scorciatoia:CTRL+T+J o pulsante Avanti.

Controlla qui nella Galleria, sul pagina ufficiale o il Archivio Codeplex.

Se carichi la finestra Threads da Debug->Windows->Threads..Una volta raggiunto un punto di interruzione, puoi selezionare tutti i thread e fare clic su "Blocca thread", quindi puoi riprendere il thread attivo, selezionandolo e scegliendo "Scongela thread".

Ciò consentirà solo l'esecuzione del thread corrente nel debugger.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top