質問

VS2010 Beta 2 を使用して、マルチスレッド コードをデバッグしています。並列スタックなどが大好きです。

質問がありますが、複数のスレッドから呼び出される可能性のあるメソッドにブレークポイントを設定しています。ブレークポイントに到達したら、そのブレークポイントをトリガーしたスレッドに焦点を当て続けたいと考えます。ただし、「ステップ」を押すと、VS は別のスレッドに切り替わることがよくあります (スレッド 1 で停止しているが、その間にスレッド 2 がブレークポイントにヒットするとします)。

スレッド ウィンドウでスレッドを手動で凍結できることはわかっています。それを自動的に行う方法はありますか? 基本的に、ブレークポイントに到達したら、F-5 を押すまで、現在のスレッドを除くすべてのスレッドをフリーズします。

役に立ちましたか?

解決

あなたを介してステッピングされている間、

私の知るないこと、しかし、あなたはあなたのブレークポイントを無効にすることができます。

私はちょうど開いたスレッドのウィンドウを維持し、スレッドIDのノートを維持する傾向があり、多くのスレッドを混乱心配です。

他のヒント

私は、まさにあなたが探しているものを実行する Visual Studio 2010 拡張機能をリリースしました。そしてそれは無料です:)。

プレゼンテーション

この Visual Studio 2010 拡張機能では、開発者がマルチスレッド アプリケーションのデバッグ中に単一スレッドに簡単に集中できるようにする 2 つのショートカットとツールバー ボタンが追加されています。

これにより、「スレッド」ウィンドウに手動で移動して、従う必要があるスレッドを除くすべてのスレッドを凍結/解凍する必要性が大幅に減り、生産性の向上に役立ちます。

特徴

それ以降の実行を現在のスレッドのみに制限します。他のすべてのスレッドを凍結します。ショートカット:CTRL+T+T またはスノーフレーク ボタン。次の単一スレッド (ID に基づいて) に切り替えます。現在のスレッドを変更し、他のすべてのスレッドを凍結します。ショートカット:CTRL+T+J または「次へ」ボタン。

それをチェックしてください ここのギャラリーで, 、上で 公式ページ または Codeplex リポジトリ.

あなたは、あなたがそれを選択し、アクティブなスレッドを再開することができますが、ブレークポイントにヒットしたら、あなたはすべてのスレッドを選択し、「フリーズスレッド」をクリックすることができます。..デバッグ - >のWindows->スレッドからスレッドウィンドウをロードし、選択した場合"解凍スレッド" ます。

これは、現在のスレッドがデバッガで実行できるようになります。

<のhref = "http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/07/17/automatically-freezing-threads-brrrrr.aspx" のrel = "nofollowを" がありますVisual Studioのマクロにしてこれを行う方法のジョン・ロビンズによって>ブログ記事ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top