5

私は、大規模なVS2010ソリューション(すべてC#)でいくつかのプロジェクト(AとB)に取り組んでいます。プロジェクトAのメソッドが、私が責任を負わないソリューション内の1つ以上のプロジェクトを呼び出し、次にプロジェクトBを呼び出す場合が多くあります。プロジェクトAからデバッガーをステップスルーすると、強制されます。プロジェクトBの呼び出しに最終的に到達する前に、これらの他のプロジェクトの多くのメソッドをステップスルーする必要があります。さらに、プロジェクトBからステップアウトするときは、コールスタックを最後までステップバックする必要があります。プロジェクトAに戻る前に、興味のない方法について説明します。

現在、プロジェクトAとBの入口と出口にブレークポイントを設定することでこれを回避していますが、これらのブレークポイントを正しい場所に設定することに多くの時間が費やされていることがわかり、私の人生はたくさんあると感じています特定のプロジェクトのステップスルーを無効にできれば、もっと簡単になります。

私はDebuggerStepThroughAttributeを知っていますが、(i)多くの場所に追加する必要があり、(ii)このコードのステップスルーに関心のある私のオフィスの人は満足できないため、この使用は私の状況では機能しません。 。

何か案は?

4

1 に答える 1

14

はい、これは、Just My Codeを有効にし、気にしないDLLのシンボルの読み込みを防ぐことで可能になります。

Just My Codeを有効にするには:

  • デバッグ»オプションと設定...»一般»[マイコードのみを有効にする(管理対象のみ)]をオンにします。

DLLのシンボルがロードされないようにするには:

  • デバッグ»オプションと設定...»記号»[除外されていない限り、すべてのモジュール]をクリックします
  • 「除外するモジュールを指定する」をクリックします
  • 除外するモジュールの名前を追加します。アプリケーションをデバッグするときに、それらのシンボルはロードされません。

これで、プロジェクトAからプロジェクトCを通過するプロジェクトBにF11ステップインを実行すると、Cのシンボルがロードされていない限り、ステップインは直接Bに移動します。

Cのシンボルがロードされないようにするには:

  • デバッグを開始します
  • Cがロードされるポイントに到達します
  • モジュールウィンドウを開き(Ctrl + Alt + U)、Cのエントリまでスクロールします
  • 「シンボルステータス」列には、「包含/除外設定によってロードが無効になっています」と表示されているはずです。
于 2010-10-07T05:34:35.387 に答える