11
votes

Freeze tous les filets sur le point d'arrêt dans VS2010

J'utilise VS2010 Beta 2 pour déboguer un code multi-fileté. Amour pile parallèle, etc.

J'ai une question, cependant: j'ai un point d'arrêt défini dans une méthode pouvant être appelée par plusieurs threads. Une fois que j'ai frappé le point d'arrêt, je veux vraiment garder l'accent sur le fil qui a déclenché le ce point d'arrêt. Cependant, lorsque je frappe "pas", VS passe souvent à un autre thread (disons que je suis arrêté sur le fil 1, mais dans le regard du fil 2 frappe mon point d'arrêt).

Je sais que je peux geler manuellement des fils dans la fenêtre de fil. Existe-t-il un moyen de le faire automatiquement - essentiellement, une fois que j'ai frappé un point d'arrêt, gelez toutes les filets, à l'exception de l'actuel jusqu'à ce que je touche F-5?


1 commentaires

Oui, un tel hâtant, surtout si vous avez de nombreux fils parallèles! Conservez peut-être la note du threadid comme Kragen, et utilisez «Courrer au curseur» pour passer à la ligne suivante. Si un thread frappe la ligne et que son threhidd n'est pas celui que vous gardez la trace, puis répétez "Exécuter au curseur" jusqu'à ce que vous obteniez le fil souhaité. Au moins vs ne sautera pas partout dans le spectacle et vous continuez à perdre la concentration.


4 Réponses :


2
votes

Pas que je sois au courant, mais vous pouvez désactiver votre point d'arrêt pendant que vous entrez.

Quand je suis inquiet de confondre de nombreux threads, j'ai tendance à garder la fenêtre de threads ouverte et à conserver une note de l'ID de thread.


1 commentaires

Désactivez votre point d'arrêt pendant que vous entrez sur



3
votes

Si vous chargez la fenêtre de threads de débogage-> Windows-> threads. Une fois que vous avez frappé un point de rupture, vous pouvez sélectionner tous les threads, cliquez sur "Freeze threads", vous pouvez reprendre le fil actif, le sélectionner et le choix "THAW FILS".

Cela permettra uniquement au fil actuel d'exécuter dans le débogueur.


0 commentaires

12
votes

Je viens de publier une extension Visual Studio 2010 qui fait exactement ce que vous recherchez. Et c'est gratuit :).

présentation

Cette extension Visual Studio 2010 ajoute deux raccourcis et des boutons de barre d'outils pour permettre aux développeurs de se concentrer facilement sur des threads uniques tout en débogage des applications multi-threadées.

Il réduit considérablement la nécessité d'entrer manuellement dans la fenêtre de threads pour geler / dégeler toutes les filetages, mais celle qui doit être suivie et contribue donc à améliorer la productivité.

Caractéristiques

restreindre une nouvelle exécution au fil actuel uniquement. Va geler tous les autres threads. Raccourci: bouton Ctrl + T + T ou flocon de neige. Basculez sur le thread unique suivant (basé sur ID). Changera le fil actuel et gelera tous les autres threads. Raccourci: Ctrl + t + J ou bouton Suivant.

Vérifiez-le ici sur la galerie , sur le Page officielle ou référentiel de Codépex .


0 commentaires