Frage

Ich verwende VS2010 Beta 2, um einen Multi-Thread-Code zu debuggen. Liebe parallele Stapel usw.

Ich habe jedoch eine Frage: Ich habe einen Haltepunkt in einer Methode, die von mehreren Threads aufgerufen werden kann. Sobald ich den Haltepunkt getroffen habe, möchte ich wirklich den Fokus auf den Thread halten, der den Bruchpunkt ausgelöst hat. Wenn ich jedoch auf "Schritt" drücke, wechselt VS oft zu einem anderen Thread (sagen wir, ich bin auf Thread 1 gestoppt, aber in der Zwischenzeit trifft Thread 2 meinen Haltepunkt).

Ich weiß, dass ich Threads im Thread -Fenster manuell einfrieren kann. Gibt es eine Möglichkeit, dies automatisch zu tun-im Grunde genommen, wenn ich einen Haltepunkt getroffen habe, frieren Sie alle Threads außer dem aktuellen, bis ich F-5 getroffen habe?

War es hilfreich?

Lösung

Nicht, dass ich mir bewusst bin, aber Sie könnten Ihren Haltepunkt deaktivieren, während Sie durchtreten.

Wenn ich mir Sorgen mache, viele Threads zu verwechseln, halte ich das Threads -Fenster nur öffentlich und aufbewahre die Thread -IDs.

Andere Tipps

Ich habe gerade eine Visual Studio 2010 -Erweiterung veröffentlicht, die genau das tut, wonach Sie suchen. Und es ist kostenlos :).

Präsentation

Diese Visual Studio 2010-Erweiterung fügt zwei Abkürzungen und Symbolleistenschaltflächen hinzu, mit denen Entwickler auf einzelnen Threads beim Debuggen von Multi-Thread-Anwendungen problemlos konzentriert werden können.

Es reduziert dramatisch die Notwendigkeit, manuell in das Threads -Fenster zu gehen, um alle Threads einzufrieren/aufzutaugen, aber die, die befolgt werden muss, und somit hilft damit die Produktivität.

Merkmale

Beschränken Sie die weitere Ausführung nur auf den aktuellen Thread. Wird alle anderen Themen einfrieren. Verknüpfung: Strg+T+T oder Schneeflockenknopf. Wechseln Sie zum nächsten einzelnen Thread (basierend auf der ID). Ändern Sie den aktuellen Thread und frieren Sie alle anderen Threads ein. Verknüpfung: Strg+T+J oder nächste Taste.

Hör zu Hier auf der Galerie, auf der Offizielle Seite oder der Codeplex -Repository.

Wenn Sie das Thread-Fenster von Debug-> Windows-> Threads laden. Sobald Sie einen Bruchpunkt gedrückt haben, können Sie alle Threads auswählen und klicken auf "Freeze Threads", dann können Sie den aktiven Thread wieder aufnehmen, ihn auswählen und auswählen "Thaw Threads ".

Dadurch kann nur der aktuelle Thread im Debugger ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top